【发布时间】:2013-05-24 14:24:52
【问题描述】:
我有一个点 (x, y, z),它位于由 ax+by+cz+d=0 定义的平面上。我试图弄清楚 (x', y') 相对于平面是什么,它的起点为 (x0, y0, z0) 并且 x' 轴由 (1,0) 定义和y' 轴由 (0,1) 定义。
我的主要目标是让鼠标在表面上单击,并知道特定表面上的 2D 坐标。我已经成功地将光线相交到一个平面上。
附带说明,我使用的是 DirectX 9 - 我对矩阵/向量数学的熟悉程度受限于通过 D3DX 库提供给我的 API。
我的一个想法是使用其中一个轴向量之间的角度并找到与原点的距离,然后使用简单的三角函数计算 x/y。但我不确定这是否真的是一个理想的解决方案 - 或者它是否真的可以解决手头的问题。
【问题讨论】:
-
轴的定义不清楚,因为您使用的是二维坐标。您必须以某种方式将这些轴与您的 3d 环境相关联,或者指定您不关心这些轴相对于其周围环境的方向。
-
@MvG 我认为我的目标背景阐明了我想要实现的目标以及我的轴有什么相关性。
-
如果我很清楚,我就不会问了……而且由于您的评论也没有澄清,我担心我无法提供帮助。
-
@MvG 对不起,我想你可能错过了。想象一下 3D 平面上的 2D 图像。当我点击屏幕上的一个像素时,我想知道那个 2D 图像的 x,y 坐标。我在平面上有 3D 坐标(我已经将光线投射出来并在平面上进行了交叉) - 我正在尝试从我已经完成的 3D 平面获取图像的 2D 坐标相交。
标签: vector 3d geometry 2d plane