我需要在屏幕中央的2d画一个三角形并在中心旋转它只使用被动鼠标操作任何参考代码?
void myDisplay(void)
{
glClear(GL_COLOR_BUFFER_BIT); // clear the screen
glBegin(GL_TRIANGLES);
glVertex2i(100, 50); // draw three points
glVertex2i(100, 130);
glVertex2i(150, 130);
glEnd();
glFlush();
答案 0 :(得分:0)
假设我们有一个三角形,其中一个顶点位于屏幕的中心(NDC = [0,0]),它沿x轴对称。让三角形指向鼠标的问题不是找到从屏幕中心到鼠标位置的矢量与x轴([1,0])之间的角度的问题。执行此操作的解决方案如下所示:
Vec2 mousePosition = queryMousePositionAsDoneInYourAPI();
float angle = acos(dot(normalize(mousePosition - [width/2, height/2]), [1,0]));
glLoadIdentity();
glRotatef(angle, 0,0,1);
glBegin();
drawTriangle
glEnd();