【发布时间】:2015-03-22 18:49:41
【问题描述】:
我正在尝试将rotate 我的形状更改为mouses X and Y position。就像在 2D 自上而下的游戏中一样,tank's turret 将旋转到mouses X 和Y position。
使用
glutPassiveMotionFunc(MousePassiveMotion);
我可以记录 X 和 Y 位置;
void MousePassiveMotion(int x, int y){
//do something here
myAtan2 = atan2(y - Pentagon.y, x - Pentagon.x)* 180 / PI;
Pentagon.angle = myAtan2;
cout << Pentagon.angle << endl;
}
调试给了我一个介于0 和90 之间的值,我相信最大值。
但是,我的五角大楼没有旋转。
void DrawShape(){
glTranslatef(x, y, z);//the x and y position of the shape
glRotatef(angle, 0, 0, 1.0f);
glBegin(GL_TRIANGLE_FAN);
glVertex3f(v[9].x, v[9].y, v[9].z);
上面的代码是struct,称为Shape{};,五角大楼是其中的类型。
DrawShape() 方法在 display function 中被调用,所以它应该是旋转的。但不是。
有人知道为什么吗?
【问题讨论】: