點到直線的距離,垂足,對稱點,兩點所成的直線方程
【原文:https://blog.csdn.net/qq_37621623/article/details/80231729】
一、求兩點所形成的直線方程:
給定兩點p1(x1,y1),p2(x2,y2),假設兩點不重合,求直線方程A*X+B*Y+C=0,A,B,C分別是
A=y2-y1;
B=x1-x2;
C=x2*y1-x1*y2;
二、求點到直線的距離,垂足,對稱點
點座標p(x0,y0)
直線方程AX+BY+C=0
點到直線距離d
垂足(x,y)
對稱點(x`,y`)
(1)距離:
d = ( Ax0 + By0 + C ) / sqrt ( A*A + B*B );
這個"距離"有符號,表示在點的上方或下方,取絕對值表示歐式距離
(2)垂足:
求解兩個方程:(a)、Ax + By + C = 0;(b)、(y - y0) / (x - x0) = B / A;
解得,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 );
(3)對稱點:
方法一:求解兩個方程:(a)、A*( x’+x0 ) / 2 + B*( y‘+y0 ) / 2 + C = 0; (b)、(y’ - y0) / (x‘ - x0) = B / A;
方法二:
把問題轉化為求解已知點關於垂足的對稱點:
首先,求出垂足;則x’ = 2*x - x0; y‘ = 2*y - y0;
解得,x’ = ( (B*B - A*A)*x0 - 2*A*B*y0 - 2*A*C ) / ( A*A + B*B );
y‘ = ( -2*A*B*x0 + (A*A - B*B) * y0 - 2*B*C ) / ( A*A+B*B );
方法三:
首先,求一系數k,k = - 2 * (A*x0 + B*y0 + C) / (A*A+B*B);
則, x' = x0 + k * A;
y' = y0 + k * B;
相關文章
- 計算兩條直線的交點
- 演算法之陣列——共直線的最多點數演算法陣列
- 視覺化學習:利用向量計算點到線段的距離並展示視覺化
- 計算地圖中兩點之間的距離地圖
- 二叉樹任意兩個節點間的最大距離(Java,LeetCode 543二叉樹的直徑 遞迴)二叉樹JavaLeetCode遞迴
- Headscale實現點對點直連異地組網
- 計算兩豎直直線與橢圓圍成部分面積
- 圖形學 畫直線 DDA掃描法與中點畫線法
- C語言:使用函式計算兩點間的距離C語言函式
- 根據經緯度計算兩點之間的距離的公式公式
- 常見問題01:計算地球上兩個點的距離
- 原生JS獲取DOM 節點到瀏覽器頂部的距離或者左側的距離JS瀏覽器
- 在點雲上計算兩點之間的測地線
- Jenkins 節點已啟動,但是一直顯示未線上?Jenkins
- Linux測試點對點連線速度工具Linux
- Android websocket長連線+點對點訂閱AndroidWeb
- 牛頓單點線割迭代法求解非線性方程
- Java實現--給定2D平面上的n個點,找出位於同一直線上的最大點數。Java
- 關聯線探究,如何連線流程圖的兩個節點流程圖
- Php兩點地理座標距離的計算方法和具體程式碼PHP
- ggplot2中繪圖設定x軸、y軸名稱距離框線的距離繪圖
- 實現一個函式,對給定平面任意兩點座標(x 1 ,y 1 )和(x 2 ,y 2 ),求這兩點之間的距離函式
- 直擊3·15晚會,網路資訊保安成焦點!
- 微信小程式 - 輸入起點、終點獲取距離並且進行路線規劃(騰訊地圖)微信小程式地圖
- AUTOCAD——直線命令
- SVG <line> 直線SVG
- 微信小程式——計算2點之間的距離微信小程式
- 3-點的座標及最遠距離問題
- 根據兩點經緯度計算距離和角度——java實現Java
- DP線接顯示器點不亮的解決方法(接DP線點不亮,接HDMI線能點亮)
- LOJ #2005. 「SDOI2017」相關分析 線段樹維護迴歸直線方程
- canvas繪製直線Canvas
- SVG 繪製直線SVG
- 2058. 找出臨界點之間的最小和最大距離
- OOM的起點到終點OOM
- 設定gbase叢集節點離線狀態
- halcon xld線段中點、端點和角度的計算
- 定義Point類,採用友元類的方式計算兩個點之間的水平和垂直距離