文档介绍:学生实验实****报告册
学年学期:
2016-2017学年 o春秋学期
课程名称:
大学计算机基础
学生学院:
通信与信息工程学院
专业班级:
学生学号:
学生:
联系:
邮电大学教务处印制
实验实****名
OpenGL基本使用
指导教师
红星
考核成绩
课程名称
计算机图形学A
课程编号
040659
实验实****地点
信息科技大厦S306
完成日期
2016年10月17日
学生
学生学号
学院专业
广电与数字媒体类
所在班级
教师评语
教师签名:
年 月 日
实验实****目的及要求
目的:
认识了解OpenGL的性质、功能
要求:
:比如球体、正方体
:平移、缩放、旋转
二、实验实****设备(环境)及要求(软硬件条件)
采用Microsoft Visual C 2010生成环境并用C++编写程序
三、实验实****容与步骤
容:
背景为黑色,在点光源下,能够实现平移、缩放、旋转的球。
步骤:
建立立体-->添加光照-->添加变换
“主函数”,在主函数中将窗口生成好。
“自定义函数1”中对窗口进行清除、填色等操作。
“自定义函数1”中设置点光源,设置光照的各种参数。
“自定义函数1”中设置平移、缩放、旋转及各参数。
“自定义函数2”中设置平移和缩放的循环。
,并且在主函数里面用“自定义函数1”为参数调用glutDisplayFunc()来注册一个绘图函数。其次用空闲回调函数glutIdleFunc()来使球体不停地循环有缩放、平移功能的函数。实现动画。
四、实验实****过程或算法(源程序、代码)
#include<GL/>
GLfloat angle = ;
GLfloat multiply = ;
void display(void)
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glClearColor(, , , ); //设置窗口里面的背景颜色
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(, , , );
glLoadIdentity();
gluLookAt(, , , , , , , , );
{
//设置一个点光源
GLfloat light_position[] = { ,,, };//(xyzw)w为1时代表点光源,0时代表方向光源
GLfloat light_ambient[] = { ,,, };//(0001)
GLfloat light_diffuse[] = { ,,, };//(1111)
GLfloat light_specular[] = { , , , };//(1111)
glLightfv(GL_LIGHT0, GL_POSITION, light_position);
glLightfv(GL_LIGHT0, GL_AMBIENT, light_ambient);//光源环境光强值
glLightfv(GL_LIGHT0, GL_DIFFUSE, light_diffuse);//光源漫反射强值
glLightfv(GL_LIGHT0, GL_SPECULAR, light_specular);//光源镜面反射强值
glEnable(GL_LIGHT0);//打开该光源
glEnable(GL_LIGHTING);//打开光照
}
{
glRotatef(angle, , , );
glTranslatef(, , ); //平移
glScaled(multiply, multiply, multiply); //缩放
glutSolidSphere(0.