线性代数问题,在我开始处理2D和3D编程之前,我应该理解这个问题。我是一名业务应用程序程序员,但我正在探索对游戏编程的兴趣。我意识到这对某些人来说可能是一个简单的问题,所以请耐心等待。
直线 L 穿过点 P1 (3, -1, 2) 和 P2 (1, -2, -1)。确定 L 在 xy 平面中的交点。
使用这两个点,您可以找到一条直线的方程(谷歌在 3D 中找到一条直线的方程),从该点开始,您可以将直线的方程和 xy 平面的方程相等以找出它们的交点(谷歌在 3D 中查找两个平面的相交)。
您可以使用直线的 z 坐标作为自变量,并使用这两个点以 z 为单位获取 x 和 y 坐标的公式。
首先,我们定义斜率:
x_slope=(x2-x1)/(z2-z1);
y_slope=(y2-y1)/(z2-z1);
然后我们有:
x-x1=x_slope*(z-z1)
和
y-y1=y_slope*(z-z1)
将z
设置为 0 并求解 x 和 y,我们得到
x_plane_coord=x1-(x_slope*z1);
y_plane_coord=y1-(y_slope*z1);