【发布时间】:2014-07-18 10:50:23
【问题描述】:
#include <glut.h>
float _angle = 0.0;
void Draw() {
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0, 1.0, 1.0);
glPointSize(8);
glPushMatrix();
glTranslatef(0.3,0.3,0.0);
glRotatef(_angle, 0.4, 0.1, 0.5);
glBegin(GL_POINTS);
glVertex3f(0.3, 0.0, 0.0);
glEnd();
glPopMatrix();
glFlush();
}
void update(int value)
{
_angle += 3;
if (_angle > 360)
{
_angle -= 360;
}
glutPostRedisplay();
glutTimerFunc(5,update,0);
}
void Initialize() {
glClearColor(0.0, 0.0, 0.0, 0.0);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(-1.0, 1.0, -1.0, 1.0, -1.0, 1.0);
}
int main(int iArgc, char** cppArgv) {
glutInit(&iArgc, cppArgv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize(250, 250);
glutInitWindowPosition(200, 200);
glutCreateWindow("CSE");
Initialize();
glutDisplayFunc(Draw);
glutTimerFunc(25,update,0);
glutMainLoop();
return 0;
}
我正在尝试模拟太阳地球和月球自转。现在我已经围绕上面代码中的特定点旋转了一个对象,并假设它的月球绕地球运行,现在我如何围绕原点旋转整个物体,使其看起来围绕太阳旋转。
【问题讨论】: