将鼠标位置映射到3d平面的坐标系

时间:2013-09-29 21:48:33

标签: opengl 3d mouse plane

将OpenGL与正投影一起使用。

我在3d中定义了一个平面。它的位置和方向由4x4定义 基质

我希望能够做的是用鼠标在平面上画草图。

我可以通过从鼠标投射光线找到与平面的交点 进入屏幕。这一点是参考世界坐标系 (OpenGL的身份模型视图矩阵)x +右,y + up,z +离开屏幕。

我发现了很多这方面的例子,将光线与平面相交。

现在,如何将该点映射到平面的坐标系?这可能已在相关问题中得到解答,但我似乎无法找到它。

1 个答案:

答案 0 :(得分:2)

定义平面的一种方法是通过两个非共线矢量和一个基点。

p(u,v) = ↑r + u·↑a + v·↑b, where u,v are scalars

在进行平面光线交叉后,您知道与平面↑h的交点,根据定义,它必须位于平面上。要获得u,v的值,您必须将从↑r到交叉点的向量投影到基矢量↑a和↑b:

u = (↑h - ↑r) · ↑a ; where '·' denotes the scalar product
v = (↑h - ↑r) · ↑b
相关问题