Перпендикулярна точка на линия от 3D точка

Този въпрос е задаван и преди във връзка с 2D. Този въпрос го разширява до 3D. Как да намеря перпендикулярна пресечна точка на права от точка в 3D пространство?. Ако моята линия е определена от точки (x1,y1,z1) & (x2,y2,z2) и имам точка (x3,y3,z3) в пространството. Как да намеря перпендикулярното пресичане на точка (x4,y4,z4) на правата от (x3,y3,z3)?


person user1222017    schedule 20.02.2012    source източник
comment
Точен дубликат на stackoverflow .com/questions/9368436/. Гласуването за затваряне.   -  person andand    schedule 21.02.2012
comment
Ако това е по някакъв начин различно от очевидно идентичния въпрос, който зададохте 43 минути по-рано, трябва да редактирате този въпрос, за да обясните разликата, в противен случай той скоро ще бъде затворен.   -  person AakashM    schedule 21.02.2012


Отговори (3)


Искате да намерите 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.

person Eric Bainville    schedule 20.02.2012

Направих изчислението:
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 (пресечна точка) = (ax1+bx2, ay1+by2, az1+bz2)
където:
P1 = (x1, y1, z1)
P2 = (x2, y2, z2)
P3 = (x3, y3, z3)

person daniel    schedule 28.05.2015

Ако знаете как да пресечете сфера с Line3D, можете да "раздуете" (раздуете) p3, като му дадете достатъчен радиус. След това пресечете Sphere с Line3D. Решението p4 е средата на двете пресечни точки по симетрия.

person pbierre    schedule 16.04.2016