我有两个向量(X,Y,Z),一个在Y=0
之上,一个在Y=0
之下。我想要找到矢量(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
这些点从用户点击的两个UnProjections中读取,我试图将取消投影的目标指向Y=0
。
(我找到了3D line plane intersection, with simple plane,但不理解被接受的答案,因为它是2D的)
发布于 2010-12-07 23:11:56
我怀疑两个向量实际上是指两个点,并且希望连接这两个点的直线与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的点。
具体地说,在B + (E - B)*u = 0
中求解u
,然后将其反馈回原始线方程,以找到X和Z分量。
发布于 2010-12-07 23:14:04
这条线的方程是
(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
https://stackoverflow.com/questions/4382591
复制