从3D点开始的垂直点

时间:2012-02-20 21:52:05

标签: math 3d geometry

之前已经提到这个问题参考2D。这个问题扩展到3D。如何在3D空间中的点上找到直线相交点?如果我的线由点(x1,y1,z1)和& (x2,y2,z2)我在空间中有一个点(x3,y3,z3)。如何在(x3,y3,z3)的直线上找到点(x4,y4,z4)的垂直交点?

3 个答案:

答案 0 :(得分:3)

您希望在P1,P2线上找到P4,即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)是矢量点积:sum u_i v_i。这适用于任何维度,通过包含P3的垂直超平面给出线P1,P2的交点。

答案 1 :(得分: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(交点)=(a x1 + b x2,a y1 + b y2,a z1 + b z2)
其中:
P1 =(x1,y1,z1)
P2 =(x2,y2,z2)
P3 =(x3,y3,z3)

答案 2 :(得分:0)

如果你知道如何将Sphere与Line3D相交,你可以通过给它一个足够的半径来“冒泡”(膨胀)p3。然后将Sphere与Line3D相交。解p4是两个交点的中点,通过对称性。