2012-02-20 46 views
0

這個問題以前曾經參考過2D問過。這個問題將其擴展到3D。如何從3D空間中的點找到垂直相交點?如果我的線由點(x1,y1,z1)&(x2,y2,z2)定義,並且我有一個空間點(x3,y3,z3)。如何從(x3,y3,z3)的線上找到點(x4,y4,z4)的垂直交點?來自3D點的線上的垂直點

+0

http://stackoverflow.com/questions/9368436/3d-perpendicular-point-on-line-from-3d-point的完全重複。投票結束。 – andand 2012-02-21 03:59:03

+0

如果這與您在43分鐘前提出的表面上完全相同的問題有所不同,那麼您應該編輯此問題以解釋不同之處,否則它很快就會被關閉。 – AakashM 2012-02-21 09:15:24

回答

3

對於一些非零對標量(a,b),您想在P1,P2線上找到P4,即P4=a*P1+b*P2,使得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。這適用於任何維度,通過包含P3的垂直超平面給出P1,P2線的交點。

0

我做了計算:
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(交點)= (一個X1 + b X2,一個Y1 + b Y2,一個Z1 + b Z2)
其中:
P1 =(X1,Y1,Z1)
P2 =(X2,Y2,Z2)
P3 =(X3,Y3,Z3)

0

如果你知道如何相交球與Line3D,你可以通過給出足夠的半徑來「泡出」(充氣)p3。然後用Line3D與Sphere相交。解p4是兩個交點的中點,是對稱的。