```c void drawDiamond(void) { glBegin(GL_POGON); // 画正方形 glVertex2f(-1.0, -1.0); // 左下角 glVertex2f(1.0, -1.0); // 右下角 glVertex2f(1.0, 1.0); // 右上角 glVertex2f(-1.0, 1.0); // 左上角 glEnd(); } void display() { glClear(GL_COLOR_BUFFER_BIT); // 清除颜色缓冲区 glLoadIdentity(); // 将当前矩阵设为单位矩阵 glTranslatef(0.0, 0.0, -5.0); // 平移变换 glRotatef(45.0, 0.0, 0.0, 1.0); // 旋转45度 drawDiamond(); // 调用画正方形函数 glColor3f(0.0f, 0.0f, 1.0f); // 设置颜色为蓝色 glFlush(); // 刷新绘图缓存 } ``` 需要注意的逻辑点: 1. 平移变换:`glTranslatef` 用于将正方形平移到合适的位置,避免旋转后超出屏幕范围。 2. 旋转变换:`glRotatef` 用于将正方形旋转45度,使其变成菱形。 3. 单位矩阵:`glLoadIdentity` 用于重置当前的变换矩阵,确保每次绘制时从一个干净的状态开始。 [2024-12-18 20:11:36 | AI写代码神器 | 349点数解答]