这是我的代码:
void drawClock(void)
{
glClearColor(1.0,1.0,1.0,1.0);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glColor3f(0.0,0.0,0.0);
for(int i=0; i<12; i++){
glRotatef(30,0,0,1);
glTranslatef(5.2,0.0,0.0);
glutWireCube(2.0);
}
glFlush();
}
这是我的重塑功能(没有它我什么都看不到,虽然我不确定它是如何工作的)
void changeSize(int w, int h) {
// Prevent a divide by zero, when window is too short
// (you cant make a window of zero width).
if(h == 0) h = 1;
float ratio = 1.0* w / h;
// Reset the coordinate system before modifying
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
// Set the viewport to be the entire window
glViewport(0, 0, w, h);
// Set the correct perspective.
gluPerspective(45,ratio,1,1000);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
gluLookAt(0.0,0.0,70.0,
0.0,0.0,-1.0,
0.0f,1.0f,0.0f);
}
所以我试图用尺寸为 2.0 的线立方体来绘制时钟的小时标记,每个立方体必须距离中心 5.2 个单位。这是一个任务,我知道它可能很简单,但我无法让它正常工作。我的问题是立方体出现在 3D 中,但我希望它们出现在 2D 中,因为我只会看到一张脸。另外,圆圈没有居中,我不明白为什么。我知道我应该使用 pushMatrix 和 popMatrix 但无论我如何使用它都不起作用。