2012-02-20 42 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是两个交点的中点,是对称的。