《计算机图形学》实验指导书
《计算机图形学》实验指导书
实验1:OpenGL入门
一:实验目的和要求
1. 掌握在利用OpenGL进行程序设计的基本方法。 2. 掌握windows环境下的消息处理方法。 3. 理解在三维图形加速下OpenGL运行机制。
二:内容和方法 内容:
1. 使用OpenGL画一个正方体。
提示:
? 可参考: OpenGL教程_NeHe01-11_基础.chm 。
例6-1 辅助库应用例程 testaux.c
#include
#pragma comment(lib, \ #pragma comment(lib, \ #pragma comment(lib, \
void myinit(void);
void CALLBACK myReshape(int w, int h); void CALLBACK display(void); void myinit(void) //初始化
{glClearColor(0.0,0.0,0.0,0.0); //将窗口清为黑色 }
void CALLBACK display(void) {
glClear(GL_COLOR_BUFFER_BIT); //将颜色缓存清为glClearColor命令所设置的颜色,即背景色
glColor4f(0.2,0.8,1.0,1.0); //选颜色(R,G,B) glRotatef(30,1.0,1.0,0.0); //做旋转变换 auxWireCube(1.0); //绘制六面体的虚线图 glFlush(); //强制绘图,不驻留缓存 }
void CALLBACK myReshape (int w, int h) //用于窗口大小改变时的处理,与绘图无关
第1页 http://www.cocoon.org.cn 黄可坤
《计算机图形学》实验指导书
{glViewport(0,0,w,h); }
void main(void) {
auxInitDisplayMode(AUX_SINGLE|AUX_RGBA); //窗口显示单缓存和RGB(彩色)模式 auxInitPosition(0,0,200,200); //大小 x=200 y=200 (0,0)是屏幕左上点 auxInitWindow(\ //初始化窗口,参数是标题 myinit();
auxReshapeFunc(myReshape); auxMainLoop(display); }
实验2:OpenGL变换
一:实验目的和要求
4. 掌握在利用OpenGL进行程序设计的基本方法。 5. 掌握OpenGL下进行图形变换的方法。
二:内容(二选一)
2. 使用OpenGL画一个正方体和一个球。球的直径等于正方体的边长,球放在正方
体的正上方。球不断转动,正方体也不断转动。
3. 做一个不断旋转和移动的正方体,并且只在一个大正方体范围内移动,碰到边
界后反弹。
提示:
? 可参考: OpenGL教程_NeHe01-11_基础.chm 及 如下程序。 /*
OpenGL下显示旋转的正方体,并带有鼠标键盘响应 Create: 2009.3 Author: