国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > iOS > 正文

objective-c實現點到直線的距離及與垂足的交點

2019-10-21 18:47:13
字體:
來源:轉載
供稿:網友

c/yingjian/bijiben/231890.html">color: #ff0000">問題描述

點到直線或者線段的距離

實現思路

假設有一點坐標P(x0,y0),有一線段AB,A坐標(x1,y1),B坐標(x2,y2),求P點到AB線段或所在直線的距離d以及P點在直線上的垂足C(x,y)。

這需要復習一下高中的數學知識。

首先需要將A,B兩點坐標轉換為直線方程的一般式Ax+By+C = 0,過程就不推演了。

參數計算:

A=y2-y1;

B=x1-x2;

C=x2*y1-x1*y2;

1、點到直線的距離公式:

d= ( Ax0 + By0 + C ) / sqrt ( A*A + B*B );

2、垂足C(x,y)計算公式:

x = (  B*B*x0  -  A*B*y0  -  A*C  ) / ( A*A + B*B );

y  =  ( -A*B*x0 + A*A*y0 – B*C  ) / ( A*A + B*B );

程序的實現:

//垂足交點-(CGPoint)pedalPoint: (CGPoint)p1 : (CGPoint )p2: (CGPoint)x0{float A=p2.y-p1.y;float B=p1.x-p2.x;float C=p2.x*p1.y-p1.x*p2.y;float x=(B*B*x0.x-A*B*x0.y-A*C)/(A*A+B*B);float y=(-A*B*x0.x+A*A*x0.y-B*C)/(A*A+B*B);//點到直線距離float d=(A*x0.x+B*x0.y+C)/sqrt(A*A+B*B);CGPoint ptCross=ccp(x,y);NSLog(@”d======%f”,d);NSLog(@”A=======%f,B=======%f,C=======%f”,A,B,C);NSLog(@”垂足======x=%f,y=%f”,x,y);return ptCross;}

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對VEVB武林網的支持。

 

注:相關教程知識閱讀請移步到IOS開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 五莲县| 祥云县| 吕梁市| 洛南县| 陆河县| 新沂市| 阳谷县| 海兴县| 金沙县| 开原市| 镇巴县| 舒城县| 精河县| 宁乡县| 乌海市| 咸宁市| 竹北市| 文成县| 临桂县| 吉木萨尔县| 岑巩县| 和田县| 闽清县| 舒兰市| 阿拉善左旗| 桑植县| 宣恩县| 海门市| 任丘市| 定结县| 麟游县| 冷水江市| 多伦县| 两当县| 富顺县| 临湘市| 都兰县| 贞丰县| 固始县| 台山市| 淮南市|