Перпендикулярная точка на линии от 3D-точки - PullRequest
0 голосов
/ 21 февраля 2012

Этот вопрос уже задавался ранее в отношении 2D.Этот вопрос распространяется на 3D.Как найти перпендикулярную точку пересечения на линии из точки в трехмерном пространстве?Если моя линия определена точками (x1, y1, z1) & (x2, y2, z2) и у меня есть точка (x3, y3, z3) в пространстве.Как найти перпендикулярное пересечение точки (x4, y4, z4) на линии от (x3, y3, z3)?

Ответы [ 3 ]

4 голосов
/ 21 февраля 2012

Вы хотите найти P4 на линии P1, P2, то есть P4=a*P1+b*P2 для некоторой ненулевой пары скаляров (a, b), такой, что P4-P3 ортогонален P2-P1. Это условие может быть записано dot(P4-P3,P2-P1)=0. Заменив P4, вы получите a*dot(P1-P3,P2-P1)+b*dot(P2-P3,P2-P1)=0. Так что вы можете взять:

a = dot(P2-P3,P2-P1)
b = -dot(P1-P3,P2-P1)

dot(u,v) - произведение векторных точек: сумма u_i v_i. Это работает в любом измерении, давая пересечение прямой P1, P2 перпендикулярной гиперплоскостью, содержащей P3.

0 голосов
/ 17 апреля 2016

Если вы знаете, как пересечь Сферу с помощью Line3D, вы можете «выплюнуть» (раздуть) p3, придав ему достаточный радиус.Затем пересечь Сферу с Line3D.Решение p4 является средней точкой двух точек пересечения по симметрии.

0 голосов
/ 28 мая 2015

Я сделал расчет:a = (x3-x2) (x2-x1) + (y3-y2) (y2-y1) + (z3-z2) (z1-z3)b = - (x1-x3) (x2-x1) - (y1-y3) (y2-y1) - (z1-z3) (z2-z1)

P4 (точка пересечения) = (a x1 + b x2, a y1 + b y2, z1 + b z2)где:P1 = (x1, y1, z1)P2 = (x2, y2, z2)P3 = (x3, y3, z3)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...