南邮计算机图形学老师,南邮计算机图形学实验报告(完整版).doc

南邮计算机图形学实验报告(完整版)

实 验 报 告

实验名称指导教师实验类型综合实验学时2实验时间一、实验目的和要求

能够灵活的运用OpenGL图形API函数,基于C++程序语言,自行设计出各种各样的计算机图形方案并调整不同的透视模型。学会配置OpenGL图形函数API,设计(1)在屏幕上显示基本3D图形;(2)设置图形的表面光照模型及投影变换模型。

1.所有图形(例如球体,正方体)有清晰的轮廓。

2.学会设置图形表面的光照色彩以及投影变换模型。

3.尽可能采用高效的算法,以降低时间复杂性和空间复杂性。

二、实验环境(实验设备)

硬件:微机

软件:vs2012

实 验 报 告

三、实验过程描述与结果分析

实验代码:

#include

// 绘制立方体

// 将立方体的八个顶点保存到一个数组里面

static const float vertex_list[][3] =

{

-0.5f, -0.5f, -0.5f,

0.5f, -0.5f, -0.5f,

-0.5f, 0.5f, -0.5f,

0.5f, 0.5f, -0.5f,

-0.5f, -0.5f, 0.5f,

0.5f, -0.5f, 0.5f,

-0.5f, 0.5f, 0.5f,

0.5f, 0.5f, 0.5f,

};

// 将要使用的顶点的序号保存到一个数组里面

static const GLint index_list[][2] =

{

{0, 1},

{2, 3},

{4, 5},

{6, 7},

{0, 2},

{1, 3},

{4, 6},

{5, 7},

{0, 4},

{1, 5},

{7, 3},

{2, 6}

};

//光照模型

void init(void)

{

GLfloat ambient[] = { 0.0, 0.0, 0.0, 1.0 };

GLfloat diffuse[] = { 1.0, 1.0, 1.0, 1.0 };

GLfloat position[] = { 0.0, 3.0, 2.0, 0.0 };

GLfloat lmodel_ambient[] = { 0.4, 0.4, 0.4, 1.0 };

GLfloat local_view[] = { 0.0 };

glClearColor(0.0, 0.1, 0.1, 0.0);

glEnable(GL_DEPTH_TEST);

glShadeModel(GL_SMOOTH);

glLightfv(GL_LIGHT0, GL_AMBIENT, ambient);

glLightfv(GL_LIGHT0, GL_DIFFUSE, diffuse);

glLightfv(GL_LIGHT0, GL_POSITION, position);

glLightModelfv(GL_LIGHT_MODEL_AMBIENT, lmodel_ambient);

glLightModelfv(GL_LIGHT_MODEL_LOCAL_VIEWER, local_view);

glEnable(GL_LIGHTING);

glEnable(GL_LIGHT0);

}

// 绘制立方体

void DrawCube(void)

{

int i,j;

glBegin(GL_LINES);

for(i=0; i<12; ++i) // 12 条线段

{

for(j=0; j<2; ++j) // 每条线段 2个顶点

{

glVertex3fv(vertex_list[index_list[i][j]]);

}

}

glColor3f(1.0f, 1.0f, 1.0f);

glVertex2f(0.0f, 0.0f);

for(i=0; i<=8; ++i)

{

glColor3f(i&0x04, i&0x02, i&0x01);

}

glEnd();

}

static float rotate = 0;

static int

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值