获取立方体的表面。

我想计算点击了一个立方体的哪个面。我已经搞定了在3D中操作鼠标,并且可以在鼠标位置绘制物体。现在我需要做的就是计算正在被触摸的立方体面。

例如,我有一个函数,当我将大小、位置和鼠标位置传递给它时,它将返回该面。顶部、底部、左侧、右侧、前面、后面。

听起来很简单,但我一点都不清楚。

谢谢大家,SilentC

原文链接 https://stackoverflow.com/questions/1301533

点赞
stackoverflow用户89299
stackoverflow用户89299

不确定您在使用哪个 API,但 OpenGL 有一个 selection API,可以为您完成此操作。

2009-08-19 18:05:56
stackoverflow用户77507
stackoverflow用户77507

你只需使用相机位置和鼠标在视平面上的位置定义的线条计算每个立方体面与之相交的 线面交点。舍弃位于平面上但不在立方体面上的所有交点,选取最近的交点。

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

2009-08-19 18:13:52