曲线模拟 计算机图形学,计算机图形学曲线曲面.doc

计算机图形学曲线曲面

北方工业大学

计算机图形学课程实验报告

题 目:实验五 曲线曲面学 院:计算机学院专 业:数字媒体技术指导教师:蔡兴泉学生班级:学生学号:学生姓名:教师评定:

实验报告5 曲线曲面

一.实验目的

1.熟悉OpenGL图形库;

2.掌握曲线曲面实现算法。

二.实验环境

1.软件环境:

操作系统:WinXp

应用软件:VC6.0,OpenGL

2.硬件环境(查看自己的机子)

CPU: Intel PIV 2.80GHz

内存RAM: 1GB

显卡:NVIDIA GeForce7650,256M显存

三.实验内容

1. 写程序实现Bezier曲线

2. 写程序实现绘制3个半径不同、颜色不同的小球

3. 写程序实现一个场景,绘制1个立方体、1个圆锥、1个圆柱、1个茶壶

四.程序及结果

1. Bezier曲线实现关键程序及注释

void RenderScene(void)

{

int i;

glClear(GL_COLOR_BUFFER_BIT) //设置贝塞尔曲线

glMap1f(GL_MAP1_VERTEX_3, //生成的数据类型

0.0f,//u值的下界

100.0f,/ //u值的上界

3,//顶点在数据中的间隔,x,y,z所以间隔是3 nNumPoints,//u方向上的阶,即控制点的个数

&ctrlPoints[0][0]);//指向控制点数据的指针

glEnable(GL_MAP1_VERTEX_3);// //必须在绘制顶点之前开启

glBegin(GL_LINE_STRIP); //使用画线的方式来连接点

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

{

glEvalCoord1f((GLfloat) i); //求的点坐标

}

glEnd();

DrawPoints();//画点

glutSwapBuffers();/ /交换两个缓冲区指针

}

2. 小球绘制实现关键程序及注释

void RenderScene(void)

{

GLUquadricObj *pObj;// 定义Quadric Object

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);//清屏

glPushMatrix();//矩阵状态

glTranslatef(0.0f, -1.0f, -5.0f);

glRotatef(xRot, 1.0f, 0.0f, 0.0f);//

glRotatef(yRot, 0.0f, 1.0f, 0.0f);

pObj = gluNewQuadric();//创建一个新的二次曲面状态对象

gluQuadricNormals(pObj, GLU_SMOOTH);//

glPushMatrix();

glColor3f(1.0f, 1.0f, 1.0f); //定义颜色为白

glTranslatef(0.0f, 1.0f, 0.0f);//圆心坐标

gluSphere(pObj, .3f, 26, 13); // 绘制小球半径为0.3

glPopMatrix();

glPushMatrix();

glColor3f(1.0f, 0.0f, 0.0f);//定义颜色为红

glTranslatef(0.0f, 0.0f, 0.0f); // 圆心坐标

gluSphere(pObj, .5f, 26, 13);//绘制小球半径为0.5

glPopMatrix();//

glPushMatrix();//

glColor3f(0.0f, 0.0f, 0.0f);// 定义颜色为黑

glTranslatef(0.0f, 2.0f, 0.0f); // 圆心坐标

gluSphere(pObj, 0.2f, 26, 13);// 绘制小球半径为0.2

glPopMatrix();

glPopMatrix();//恢复矩阵状

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值