点到平面在特定方向上的距离

时间:2018-09-05 04:05:46

标签: math geometry linear-algebra

给出:

  1. (x1, y1, z1)
  2. 方向向量(a1, b1, c1)
  3. 飞机ax + by + cz + d = 0

如何找到沿该矢量从点到平面的距离D

谢谢

1 个答案:

答案 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。