【发布时间】:2013-10-03 01:08:00
【问题描述】:
假设我像这样制作一个四边形:
float botBaseY = -0.5;
glBegin(GL_QUADS); // Box
glVertex2f(-.05, botBaseY + -.05);
glVertex2f(-.05, botBaseY + .05);
glVertex2f(.05, botBaseY + .05);
glVertex2f(.05, botBaseY + -.05);
glEnd();
好的,现在说我想确定用户是否在该四边形内部单击。 那么当你点击时,你会收到屏幕坐标,所以如果你的主窗口是 600x600 像素,那么您的点击将产生小于 600 的 x 和 y 值。 但我将点击(375,400)与使用创建的四边形进行比较 从 -1.0 到 1.0 的值来定义 4 个顶点。
如何确定用户是否在四边形内部单击?
【问题讨论】:
-
你在考虑这个问题。当您单击某处时,您已经有了屏幕坐标。你想要做的只是检测点击的点是否在四边形内(它覆盖了标准化设备空间的一小部分,如果它是屏幕对齐的,那就更容易了)。您应该能够使用视口转换的逆来做到这一点。
标签: opengl opengl-1.x