【问题标题】:Map mouse position to 3d plane's coordinate system将鼠标位置映射到 3d 平面的坐标系
【发布时间】:2013-09-29 21:48:33
【问题描述】:

将 OpenGL 与正交投影结合使用。

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

我想做的是用鼠标在飞机上画草图。

我可以通过从鼠标投射光线来找到与飞机的交点 进入屏幕。该点参考世界坐标系 (OpenGL的身份模型视图矩阵) x+ right, y+ up, z+ out of the screen.

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

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

【问题讨论】:

    标签: opengl 3d mouse plane


    【解决方案1】:

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

    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
    

    【讨论】:

    • 啊,从平面原点到交点的向量很关键。
    猜你喜欢
    • 2017-04-19
    • 1970-01-01
    • 1970-01-01
    • 2012-09-12
    • 2021-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多