问题标签 [reverseprojection]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 计算 3D 坐标
我最近一直在尝试从鼠标位置计算 3D 点。到目前为止,我有这个:
但是,由于我的数学能力欠佳,我不确定如何利用方向和原点来产生位置。我需要执行哪些计算/公式才能产生所需的结果?
opengl - 反转投影和模型视图矩阵以将鼠标点击坐标转换为与 z=0 平面相交的世界坐标
背景
将 kivy 与 openGL 和 GLU 风格的函数一起使用,我得到了modelview
矩阵projection
的工作。没有使用模型矩阵,因此模型视图矩阵实际上只是基于相机位置的变换。
投影矩阵也很简单,可以按需要工作。
look_at
andperspective
函数来自kivy 的 Matrix 类,该类模拟/封装了一些相同(或相似)名称的 GLU 函数。
投影似乎工作得很好,但是......
问题
屏幕上的一个点可以被认为定义了一条从相机的眼睛到无限远的光线。我想知道该射线与定义的平面相交的世界 x,y 坐标z=0
。
这是我的(许多)尝试中的一个(其中之一),以使其发挥作用。
这行不通。具体来说,当我让相机稳步移开时(cz 缓慢增加)。鼠标点击的 x,y 不会随着相机的移动而改变。
我究竟做错了什么?
我知道有很多类似的问题浮出水面,但我无法找到我正在寻找的信息。