c++ 3D世界中的2D鼠标拾取[已关闭]

y3bcpkx1  于 2022-11-27  发布在  其他
关注(0)|答案(1)|浏览(166)

已关闭。此问题需要details or clarity。当前不接受答案。
**想要改进此问题吗?**通过editing this post添加详细信息并阐明问题。

昨天关门了。
Improve this question
我尝试在OpenGL中实现鼠标点击事件的对象移动,但问题是返回的坐标不在世界空间中,而是在窗口大小内。我知道这称为鼠标拾取,但我在网上找到的所有解决方案都是指当我的对象在3D空间中时的3D鼠标拾取,但我不关心Z坐标。我只关心X和Y坐标。
我尝试实现了许多鼠标拾取算法,但当我只关心时,它们都引用了所有的坐标,而且我认为鼠标拾取是指拖动对象,但我希望向我的鼠标坐标移动

mqkwyuun

mqkwyuun1#

由于窗口上的2D坐标对应于3D空间上的射线,因此有必要定义要了解的射线位置。
当使用正交投影时,(X,Y)对于射线上的所有位置都是相同的。但如果不是(使用透视投影),(X,Y)值取决于Z。
所以......
一个可以想到的简单方法是使用要移动的对象的Z值。

相关问题