北京建筑工程学院理学院
信息与计算科学
实验名称
:绘制太阳系(实验八)
班级
:信
09-1
学号
:
2108190911211
姓名
:王杰
【实验目的】
1.
掌握
GLUT
实用包中创建多面体以及二次曲面的函数
2.
掌握
OpenGL
中的基本光照函数
3.
对几何变换、投影变换等内容进行复习
【实验内容】
1.
在窗口绘制三个球体,分别代表太阳、地球和月球
2.
为每个球体设置恰当的几何变换,要求:
(
1
)太阳在场景中间
(
2
)地球在自转的同时绕太阳旋转
(
3
)月球在自转的同时绕地球旋转
3.
为场景添加适当的光照渲染
4.
源程序
#include
static int day = 365; // day
的变化:从
0
到
359
void myDisplay(void)
{
glEnable(GL_DEPTH_TEST);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(75, 1, 2, 400000000);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
gluLookAt(0, -20000000, 200000000, 0, 0, 0, 0, 0, 1);
//
黄色的
"
太阳
"
glColor3f(1.0f, 2.0f, 0.0f);
glRotatef(day/
360.0*360.0, 0.0f, 0.0f, -1.0f);
glutSolidSphere(69600000, 100, 100);
//
蓝色的
"
地球
"
glColor3f(0.0f, 2.0f, 1.0f);
glRotatef(day/
360.0*360.0, 0.0f, 0.0f, -1.0f);
glTranslatef(150000000, 0.0f, 0.0f);
glutSolidSphere(15945000, 100, 100);