如何检查freeglut中三角形区域内是否单击了鼠标?

时间:2012-11-03 18:53:35

标签: c++ opengl freeglut

我的小Opengl / freeglut / c ++ 2D编辑器项目存在问题。

编辑器允许您绘制四边形或三角形(对象)。您可以通过拖动对象的一角来调整对象的大小。 如果对象处于活动状态,您也可以在屏幕上移动对象(单击对象使其处于活动状态)。

现在我遇到的问题是对你点击的区域进行处理以使对象处于活动状态。激活区域过去只是对象周围的四边形(获取对象的宽度和高度等)(图片上的蓝点显示激活区域边框)

http://i48.tinypic.com/muyh41.png

但是我希望激活区域是对象的区域而不是围绕它的四边形。 所以问题是你如何检查鼠标是否在区域内被点击,如上图或下图中所示?

http://i49.tinypic.com/abmli8.png

1 个答案:

答案 0 :(得分:3)

OpenGL只是一个绘图API和(Free)GLUT只是一个简约的框架,用于创建一个附加了OpenGL上下文的窗口。他们俩都没有帮助你。

您必须手动执行光线三角交叉点测试

您可能会对这些链接感兴趣

http://www.lighthouse3d.com/tutorials/maths/ray-triangle-intersection/

http://www.gamedev.net/topic/447861-ray--triangle-intersection-code/