**:
假設空間某點o的座標為(xo,yo,zo),空間某條直線上兩點a和b的座標為:(x1,y1,z1),(x2,y2,z2),設點o在直線ab上的垂足為點n,座標為(xn,yn,zn)。點n座標解算過程如下:
首先求出下列向量:
向量ab可以用方向向量代替
由向量垂直關係:
上式記為(1)式。
點n在直線ab上,根據向量共線:
(2)由(2)得:
(4)把(4)式代入(3)式即得到垂足n的座標。12
3456
78910
1112
1314
1516
1718
1920
2122
2324
2526
2728
29// 二維空間點到直線的垂足
struct
point
point getfootofperpendicular(
const
point &pt, // 直線外一點
const
point &begin, // 直線開始點
const
point &end) // 直線結束點
double
u = (pt.x - begin.x)*(begin.x - end.x) +
(pt.y - begin.y)*(begin.y - end.y);
u = u/((dx*dx)+(dy*dy));
retval.x = begin.x + u*dx;
retval.y = begin.y + u*dy;
return
retval;}1
2345
6789
1011
1213
1415
1617
1819
2021
2223
2425
2627
2829
3031
// 三維空間點到直線的垂足
struct
point
point getfootofperpendicular(
const
point &pt, // 直線外一點
const
point &begin, // 直線開始點
const
point &end) // 直線結束點
double
u = (pt.x - begin.x)*(begin.x - end.x) +
(pt.y - begin.y)*(begin.y - end.y) + (pt.z - begin.z)*(begin.z - end.z);
u = u/((dx*dx)+(dy*dy)+(dz*dz));
retval.x = begin.x + u*dx;
retval.y = begin.y + u*dy;
retval.y = begin.z + u*dz;
return
retval;
}
空間點到直線垂足座標的解算方法
假設空間某點o的座標為 xo,yo,zo 空間某條直線上兩點a和b的座標為 x1,y1,z1 x2,y2,z2 設點o在直線ab上的垂足為點n,座標為 xn,yn,zn 點n座標解算過程如下 二維空間點到直線的垂足 struct point point getfootofperpendicular ...
點到直線方程的距離 垂足 對稱點
已知點的座標 x0,y0 直線的方程為ax by c 0 求點到直線上的距離d 點在直線上的垂足 x,y 點關於直線的對稱點 x y 解決方法 1 距離 d ax0 by0 c sqrt a a b b 這個 距離 有符號,表示點在直線的上方或者下方,取絕對值表示歐式距離。2 垂足 求解兩個方程 a...
計算空間點到直線的距離
利用向量的叉積計算空間點到直線的距離,eigen庫已經給我封裝好了只需按著要求呼叫就好了。舉個簡單的例子如下 已知空間直線的方向向量表示為 m,n,p 已知直線上一點座標為b x0,y0,z0 求解空間點a x,y,z b到直線的距離d 需要構建兩個向量 eigen vector4d vec1 m,...