расстояние от точки до плоскости в определенном направлении - PullRequest
0 голосов
/ 05 сентября 2018

Дано:

  1. точка (x1, y1, z1)
  2. вектор направления (a1, b1, c1)
  3. самолет ax + by + cz + d = 0

Как я могу найти расстояние D от точки до плоскости вдоль этого вектора?

Спасибо

1 Ответ

0 голосов
/ 05 сентября 2018

Вам не нужна библиотека. Тебе нужна математика.
Вектор поразит самолет в этом месте

(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.

...