- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机图形学
实验报告
姓名:
学号:
班级:
目录
实验一 OpenGL程序结构练习 3
实验二 基本图形生成 6
实验三 交互式控制 9
实验四 图形基本变换 12
实验五 三维图形生成及显示 15
实验六 三维图形生成及显示 19
实验一 OpenGL程序结构练习
【实验目的】
1. 熟悉C语言环境下OpenGL的使用方法;
2. 了解OpenGL程序的基本结构。
【实验原理】
绝大多数OpenGL程序具有类似的结构,包含下述函数
main():
定义回调函数,打开一个或多个具有指定属性的窗口,进入事件循环(最后一条可执行语句)
init():
设置状态变量、视图、属性、回调、显示函数、输入和窗口函数
#include GL/glut.h // glut.h includes gl.h and glu.h
void display()
{ …… }
void init()
{ …… }
int main( int argc, char **argv)
{ …… }
【实验内容】
1.了解程序中各个结构的功能;
2.用OpenGL生成三角形。
【实验步骤及结果】
1.导入OpenGL的glut32.lib和glut.h文件:将.lib文件存放到C语言程序文件夹的Library下,.h文件放到Include下;导入应用程序扩展文件glut32.dll,存放到system文件夹下。
2.打开VC 6.0,新建工程,并命名为text1,如图1.
图 1
3.在工程text1下新建源文件,并命名为text1.cpp。
4.编写代码并编译链接,如图2所示。
图 2
5.运行,结果如图3所示。
图 3
实验二 基本图形生成
【实验目的】
1.熟悉OpenGL的程序结构,并了解各部分的功能。
2.学会应用OpenGL语言绘制出点,线,多边形。
【实验原理】
1. GLUT函数
glutInit使得应用程序可以获取命令行参数并初始化系统。
glutInitDisplayMode设置窗口的属性、RGB颜色、单缓冲区 、属性按照逻辑或组合在一起。
glutWindowSize 以像素为单位定义窗口的尺寸。
glutWindowPosition 定义窗口左上角在显示器上的位置。
glutCreateWindow创建窗口,标题来自于参数值。
glutDisplayFunc定义显示回调函数。
glutMainLoop进入无穷的事件循环。
2. 变换与视图
在OpenGL中投影是利用投影矩阵乘法(变换)进行的,由于只存在一个变换函数系列,因此必须先设置矩阵模式。
glMatrixMode(GL_PROJECTION)变换函数是累加在一起的,因此需要从单位阵开始,然后把它改变为一个投影矩阵以定义视景体。
3. OpenGL的基本几何形状
在display模块下采用glBegin()调用,如:glBegin(GL_POLYGON)既是调用多边形绘制方式。
4. 颜色与状态
颜色的每个分量在帧缓冲区中是分开存贮的,在缓冲区中通常每个分量占用8位字节。注意在函数glColor3f中颜色的变化范围是从0.0(无)1.0(全部), 而在glColor3ub中颜色值的变化范围是从0到255。
在OpenGL程序中,由glColor*设置的颜色成为状态的一部分,后续构造过程将使用这一颜色,直至它被修改为止。
颜色与其它属性不是对象的一部分,但是在渲染对象时,要把这些属性赋给对象,可以按下述过程创建具有不同颜色的顶点
glColor()
glVertex()
glColor()
glVertex()
【实验内容】
1.用OpenGL生成点、线。
2.用OpenGL生成多边形。
【实验步骤及结果】
1.打开VC 6.0,新建名为text2的工程文件,并新建名为text2.cpp的源文件。
2.编写代码,编译并链接,如图1所示。
图 1
3.运行,结果如图2所示。
图 2
实验三 交互式控制
【实验目的】
1. 了解OpenGL中交互式控制的原理。
2. 学会运用OpenGL程序实现鼠标和键盘对图形及窗口的控制。
【实验原理】
1. GLUT中的回调函数
GLU识别在各种窗口系统(Windows, X, Macintosh)中都有的一组事件:
glutDisplayFunc //显示功能
glutMouseFunc //鼠标功能
glutReshapeFunc //重置形状功能
glutKeyboardFunc //键盘功能
glutIdleFunc //闲置停顿功能
glutMoti
您可能关注的文档
最近下载
- 《新时代职业英语》教学资源_传媒英语_Unit_6_.pptx VIP
- 中医临床执业医师考试题及答案2025版.docx VIP
- 超声中信号处理.ppt VIP
- 《新时代职业英语》教学资源_传媒英语_Unit_7_.pptx VIP
- 部编人教版道德与法治五年级上册《全册课件》.pptx
- 《新时代职业英语》教学资源_传媒英语_Unit_9.pptx VIP
- 宝钢质量管理经验.doc VIP
- 勿忘历史,珍爱和平——抗战胜利80周年主题班会-2025-2026学年初中主题班会优质课件.pptx VIP
- Kuka控制系统 KR C5安装指南.pdf VIP
- 学习2025年《初中初三开学第一课》.pptx VIP
文档评论(0)