3d 获取立方体的面

3d 获取立方体的面,3d,lua,mouse,onclick,mouseover,3d,Lua,Mouse,Onclick,Mouseover,我想计算立方体上的哪个面被点击了。我让鼠标向下移动到3D,我可以在鼠标的位置用3D绘制东西 我现在需要做的就是计算立方体的哪个面被触摸 我有一个函数,当我将大小、位置和鼠标位置传递给它时,它会返回人脸。上、下、左、右、前、后 听起来很简单,但我没有最模糊的 谢谢大家, SilentC不确定您使用的是什么API,但OpenGL有一个API,它可以为您实现这一点您只需使用相机位置和鼠标在视图平面上的位置定义的线为立方体的每个面计算a。抛出平面中但不在立方体面上的所有交点,并拾取最近的交点 如果将立方

我想计算立方体上的哪个面被点击了。我让鼠标向下移动到3D,我可以在鼠标的位置用3D绘制东西

我现在需要做的就是计算立方体的哪个面被触摸

我有一个函数,当我将大小、位置和鼠标位置传递给它时,它会返回人脸。上、下、左、右、前、后

听起来很简单,但我没有最模糊的

谢谢大家,
SilentC不确定您使用的是什么API,但OpenGL有一个API,它可以为您实现这一点

您只需使用相机位置和鼠标在视图平面上的位置定义的线为立方体的每个面计算a。抛出平面中但不在立方体面上的所有交点,并拾取最近的交点


如果将立方体表示为十二个三角形,也可以使用线三角形交点。但是在这两种情况下,你都必须提供更多的信息来获得更具体的答案。

所以定义的直线是从相机到鼠标的,对吗?而且,我假设我要补偿旋转,对吗?从相机到鼠标的直线与一个或多个面相交(如果只有一个立方体,通常为两个)。忽略退化情况,如边、顶点和与直线平行的任何面。剔除后向面可能是值得的。用户几乎肯定想要最接近的面,但您可能希望提供从面中进行选择的功能,以便用户可以选择隐藏的对象。