空間點到直線垂足座標的解算方法

2021-09-07 20:26:04 字數 1027 閱讀 5493

** 

假設空間某點o的座標為(xo,yo,zo),空間某條直線上兩點a和b的座標為:(x1,y1,z1),(x2,y2,z2),設點o在直線ab上的垂足為點n,座標為(xn,yn,zn)。點n座標解算過程如下:

// 二維空間點到直線的垂足

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;

}// 三維空間點到直線的垂足

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;

}

空間點到直線垂足座標的解算及C 實現

假設空間某點o的座標為 xo,yo,zo 空間某條直線上兩點a和b的座標為 x1,y1,z1 x2,y2,z2 設點o在直線ab上的垂足為點n,座標為 xn,yn,zn 點n座標解算過程如下 首先求出下列向量 向量ab可以用方向向量代替 由向量垂直關係 上式記為 1 式。點n在直線ab上,根據向量共...

點到直線方程的距離 垂足 對稱點

已知點的座標 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,...