我有两个向量(X,Y,Z),一个在Y=0
之上,一个在Y=0
之下。
我想找到Vector(X,Y,Z),其中两个原始矢量之间的线与Y=0
级相交。
我该怎么做?
示例点A:
X = -43.54235
Y = 95.2679138
Z = -98.2120361
示例点B:
X = -43.54235
Y = 97.23531
Z = -96.24464
这些点来自用户点击的两个UnProjection,我正在尝试将取消投标定位到Y=0
。
(我发现3D line plane intersection, with simple plane但不理解接受的答案,因为它是2D)
答案 0 :(得分:3)
我怀疑通过两个向量,你的意思是两个点,并希望将连接这两个点的线与Y=0
定义的平面相交。
如果是这种情况,那么您可以使用两点之间的直线定义:
<A + (D - A)*u, B + (E - B)*u, C + (F - C)*u>
<A,B,C>
是你的一个点,<D,E,F>
是另一个点。 u
是一个未定义的标量,用于计算沿该行的点。
由于您将此线与平面Y=0
相交,因此您只需找到“Y”线段为0的线上的点。
具体来说,求解u
中的B + (E - B)*u = 0
,然后将其反馈到原始线方程中,以找到X和Z分量。
答案 1 :(得分:2)
该行的等式是
(x–x1)/(x2–x1) = (y–y1)/(y2–y1) = (z–z1)/(z2–z1)
因此,使y = 0会产生交点的坐标。
x = -y1 * (x2-x1)/(y2-y1) + x1
和
z = -y1 * (z2-z1) /(y2-y1) + z1