特定方向上点到平面的距离
distance from point to plane in a particular direction
鉴于:
- 一个点
(x1, y1, z1)
- 一个方向向量
(a1, b1, c1)
- 一架飞机
ax + by + cz + d = 0
如何找到沿该向量从点到平面的距离 D
?
谢谢
你不需要图书馆。你需要数学。
矢量将在这个位置撞击飞机
(x,y,z) = (x1+l*a1, y1+l*b1, z1+l*c1)
加上一个 L,这样
a * (x1 + a1*L) + b * (y1 + b1*L) + c * (z1 + c1*L) + d = 0
一些等效的更改
L * ( a1*a + b1*b + c1*c) + (a*x1 + b*y1 + c*z1 + d) = 0
L * ( a1*a + b1*b + c1*c) = -(a*x1 + b*y1 + c*z1 + d)
L = -(a*x1 + b*y1 + c*z1 + d) / ( a1*a + b1*b + c1*c)
你可以这样计算 L(假设不除以 0)。
然后从 L 可以计算出 D,即点与平面和方向的交叉点之间的距离。
正如您自己所说的那样(比我脑子里的措辞更快更好),方向向量需要事先进行单位归一化才能使实际 L=D。
鉴于:
- 一个点
(x1, y1, z1)
- 一个方向向量
(a1, b1, c1)
- 一架飞机
ax + by + cz + d = 0
如何找到沿该向量从点到平面的距离 D
?
谢谢
你不需要图书馆。你需要数学。
矢量将在这个位置撞击飞机
(x,y,z) = (x1+l*a1, y1+l*b1, z1+l*c1)
加上一个 L,这样
a * (x1 + a1*L) + b * (y1 + b1*L) + c * (z1 + c1*L) + d = 0
一些等效的更改
L * ( a1*a + b1*b + c1*c) + (a*x1 + b*y1 + c*z1 + d) = 0
L * ( a1*a + b1*b + c1*c) = -(a*x1 + b*y1 + c*z1 + d)
L = -(a*x1 + b*y1 + c*z1 + d) / ( a1*a + b1*b + c1*c)
你可以这样计算 L(假设不除以 0)。
然后从 L 可以计算出 D,即点与平面和方向的交叉点之间的距离。
正如您自己所说的那样(比我脑子里的措辞更快更好),方向向量需要事先进行单位归一化才能使实际 L=D。