0

我有两个向量 (X,Y,Z),一个在上面Y=0,一个在下面Y=0。我想找到两个原始向量之间的线与Y=0关卡相交的向量 (X,Y,Z)。我怎么做?

示例 A 点:

X = -43.54235
Y = 95.2679138
Z = -98.2120361

示例 B 点:

X = -43.54235
Y = 97.23531
Z = -96.24464

这些点从用户单击的两个 UnProjection 中读取,我试图将 unprojection 定位到Y=0.

(我发现3D 线平面相交,平面简单,但不理解接受的答案,因为它是 2D 的)

4

2 回答 2

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 的点。

具体来说,求解uin B + (E - B)*u = 0,然后将其反馈到原始线方程以找到 X 和 Z 分量。

于 2010-12-07T23:11:55.647 回答
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 
于 2010-12-07T23:14:04.073 回答