0
复习参考题
3、请使用 OpenGL 和 GLUT 编写一个简单的图形程序,用于显示一个填充的白色矩形。其中矩形规定为(-0.8, -0.8)~(0.8, 0.8),程序窗口的大小为(200, 200),标题为“白色矩形”。 #include
int main() { glutInitWindowSize(200, 200); glutCreateWindow(\白色矩形\ glutDisplayFunc(Paint); glutMainLoop(); }
4、请使用 OpenGL 和 GLUT 编写一个简单的图形程序,用于显示一个填充的红色三角形。其中三角形的顶点分别是(-0.8, -0.8)、(0.8, -0.8)和(0, 0.8),程序窗口大小为(200, 200),标题 为“红色三角形”。 #include
int main()
{ glutInitWindowSize(200, 200); glutCreateWindow(\红色三角形!\ glutDisplayFunc(Paint); glutMainLoop(); }
5、请使用 OpenGL 和 GLUT 编写一个简单的图形程序,用于演示点的反走样效果。要求使用线段(-0.6, -0.6)~(0.6, 0.6)上均匀分布的 5 个点(含端点),点的大小为 10.5 像素,程序 窗口的大小为(200, 200),标题为“点的反走样”。 #include
glFlush(); }
int main()
{ glutInitWindowSize(200, 200); glutCreateWindow(\点的反走样\ glutDisplayFunc(Paint); glPointSize(10.5);
glEnable(GL_POINT_SMOOTH); glutMainLoop(); }
6、请使用 OpenGL 和 GLUT 编写一个简单的图形程序,用于演示线段的反走样效果。其中线段的端点为(-0.6, -0.3)和(0.6, 0.3),线宽为 4.5 像素,程序窗口的大小为(200, 200),标题为“线段的反走样”。 #include
int main() { glutInitWindowSize(200, 200); glutCreateWindow(\线段的反走样\ glutDisplayFunc(Paint); glLineWidth(5); glEnable(GL_LINE_SMOOTH); glutMainLoop(); } }}
25、请使用 OpenGL、GLU 和 GLUT 编写一个三维犹他茶壶程序。其中茶壶的半径为 1 单位,并远移 6.5 单位;观察体规定为:视场角=30 度,宽高比=1,近=1,远=100;程序窗口的大小为(200, 200),标题为“尤他茶壶”。 #include
int main() { glutInitWindowSize(200, 200); glutCreateWindow(\尤他茶壶\ glutDisplayFunc(Paint); glutMainLoop();
}
26、请使用 OpenGL 和 GLUT 编写一个显示线框球体的简单图形程序。其中球体的半径为 0.8,经线数为 24,纬线数为 12,并绕x轴旋转 30 度,程序窗口的大小为(200, 200),标题为“线框球”。
#include
int main() { glutInitWindowSize(200, 200); glutCreateWindow(\线框球\ glutDisplayFunc(Paint); glutMainLoop(); }
27、请使用 OpenGL 和 GLUT 编写一个显示线框椭球体的简单图形程序。其中椭球体的两极方向为上下方向,左右方向的半径为 0.98,上下方向的半径为 0.49,前后方向的半径为0.6,经线数为 48,纬线数为 24,使用正投影,裁剪窗口为(-1, -0.5)~(1, 0.5),程序窗口的大小为(400, 200),标题为“线框椭球”。 #include
int main() { glutInitWindowSize(400, 200); glutCreateWindow(\线框椭球\ glutDisplayFunc(Paint); glutMainLoop(); }
28、请使用 OpenGL、GLU 和 GLUT 编写一个三维犹他茶壶程序。其中茶壶的半径为 1 单位,并远移 6.5 单位;观察体规定为:视场角=30 度,宽高比=1,近=1,远=100;程序窗口 的大小为(200, 200),标题为“旋转的尤他茶壶”。茶壶绕 z 轴不断旋转,旋转的时间间隔为 25 毫秒,角度间隔为 2 度。注意旋转角度必须限定在 0~360 度以内。 #include
glClear(GL_COLOR_BUFFER_BIT); glLoadIdentity(); gluPerspective(30, 1, 1, 100); glTranslatef(0, 0, -6.5); glRotated(angle, 0, 0, 1); glutSolidTeapot(1); glFlush(); }
void timer(int millis) { angle = (angle + 2) % 360; glutPostRedisplay(); glutTimerFunc(millis, timer, millis); }
int main() { glutInitWindowSize(200, 200); glutCreateWindow(\旋转的尤他茶壶\ glutTimerFunc(25, timer, 25); glutDisplayFunc(Paint); glutMainLoop(); }
29、请使用 OpenGL、GLU 和 GLUT 编写一个简单的多视口演示程序。要求:在屏幕窗口左下角的 1/4 部分显示一个红色的填充正三角形;在屏幕窗口右上角的 1/4 部分显示一个绿 色的填充正方形;三角形和正方形的左下角顶点坐标值均为(0, 0),右下角顶点坐标值均为(1,0);裁剪窗口均为(-0.1, -0.1)~(1.1, 1.1);程序窗口的大小为(200, 200),标题为“多视口演示”。 #include
void Viewport(int x, int y, int w, int h) { glViewport(x, y, w, h); glLoadIdentity(); gluOrtho2D(-0.1, 1.1, -0.1, 1.1); }
void Triangle() { glBegin(GL_TRIANGLES); glVertex2d(0, 0); glVertex2d(1, 0); glVertex2d(0.5, 0.8660); glEnd(); }
void Paint() { int w = glutGet(GLUT_WINDOW_WIDTH) / 2; int h = glutGet(GLUT_WINDOW_HEIGHT) / 2; glClear(GL_COLOR_BUFFER_BIT); Viewport(0, 0, w, h); glColor3f(1, 0, 0); Triangle(); Viewport(w, h, w, h); glColor3f(0, 1, 0); glRectd(0, 0, 1, 1); glFlush(); }
相关推荐: