我正在寫一個繪製2D三角形的應用程序,並根據它的位置圍繞它的z軸旋轉它。當用鼠標拖動三角形時,其中間(t1.tx,t1.ty)不斷變化。問題是,當我將三角形拖到另一個位置時,而不是停留在其處並旋轉的位置,它會圍繞其中心點以圓形路徑旋轉。使用glTranslate和glRotate移動和旋轉?
我做錯了什麼?我希望它在它的位置上旋轉。
void drawTriangle() {
glBegin(GL_POLYGON);
glColor3f((float)200/255, (float)200/255, (float)200/255);
glVertex2f(t1.tx, t1.ty + .2); // top point of triangle
glVertex2f(t1.tx - .2, t1.ty - .2); // left point
glVertex2f(t1.tx + .2, t1.ty - .2); // right point
glEnd();
}
void display() {
glClear(GL_COLOR_BUFFER_BIT);
glLoadIdentity();
glPushMatrix();
glTranslatef(t1.tx, t1.ty, 0); // move matrix to triangle's current center point
glRotatef(theta, 0, 0, 1.0); // rotate on z-axis
drawTriangle();
glPopMatrix();
glutPostRedisplay();
glutSwapBuffers();
}
將其標記爲不讓此問題顯示爲未答覆的答案。 – rockeye 2011-12-23 09:42:03