给出:
(x1, y1, z1)
(a1, b1, c1)
ax + by + cz + d = 0
如何找到沿该矢量从点到平面的距离D
?
谢谢
答案 0 :(得分:2)
您不需要库。你需要数学。
矢量将在此位置击中飞机
(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。