- 1、本文档共19页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验一opengl高级图形图像实验报告.
高级图形图像第一次实验报告
实验描述以及关键步骤
opengl编程环境组建(基于VC6.0)
下载opengl开发库文件夹;
复制glut32.dll和glut.dll到…\windows\system32;
复制glut.h到...\Microsoft Visual Studio\VC98\Include\GL;
复制glut32.lib和glut.lib到…\Microsoft Visual Studio\VC98\Lib;
新建工程后,进入Project菜单,选Settings项,弹出 Settings 对话框,选Link项,在 Libraries 栏目中加入OpenGL库:opengl32.lib glu32.lib glaux.lib。
基本图形绘制
首先运行一个Windows环境下的一个基本OpenGL程序,直接打开60version文件夹内的工程,它将显示一个空的OpenGL窗口,可以在定制窗口大小和全屏模式下切换(按F1),按ESC退出,该程序为以后的应用程序提供了实验平台,并预留了绘图接口。
根据教材P67-70,了解绘制函数,根据附件2提供的源码baseshape.cpp,将该文件内的场景绘制函数Drawsence()替代空窗口程序中的同名函数,修改图形绘制命令和参数,显示出点、线、矩形、三角形等,可设置不同线宽。
图形的二维变换
根据附件3提供源码,将该文件内的场景绘制函数Drawsence()替代空窗口程序中的同名函数,通过调用glTranslate*, glRotate*,glscale*等二维变换函数实现平移、旋转、缩放等变换,通过参数操作和矩阵操作两种方式执行。
glTranslatef:在opengl中,函数glTranslatef的作用就是移动坐标原点。
glRotatef:glRotatef( angle, x, y, z )函数的作用是将当前坐标系以a( x, y, z )向量为旋转轴旋转angle角度。glScalef:模型缩放函数。
二维观察流水线
根据附件viewport.cpp提供的源代码和课本P253-259,将该文件内的场景绘制函数Drawsence()替代空窗口程序中的同名函数,参考glut窗口操作函数,实现同一窗口中的视口变换和多视口显示。
分形
在完成前面工作的基础上,引入分形的递归算法,通过绘制小的三角形动作,生成Sierpinski镂垫。
二、 实验步骤解析
首先用vc6.0新建一个支持MFC的工程,把附件所给的空窗口的源代码拷贝到工程里,运行,显示一个空窗。如图1。
将附件2提供的源码代替上一步骤中的Drawsence()函数,运行窗口中显示出一个三角形和一个正方形,如图2。
修改上述程序,实现画两个点,线段,矩形,如图3。
改变上一个步骤中的线宽,画出不同宽度的线段。如图4。
将附件3提供的源代码代替上一步骤中的Drawsence()函数,运行窗口中显示缩放,平移,旋转的三角形和正方形。如图5。
修改上述程序,用矩阵方法实现平移,缩放和旋转。如图6。
修改上述程序,用参数方法实现平移、旋转和缩放,并添加颜色。如图7,图8。
将附件viewport.cpp代替上述程序中的Drawsence()函数,实现同一窗口中的视口变换和多视口显示。如图9。
修改上述程序,实现同一窗口中的视口变换和多视口显示。如图10。
在完成前面工作的基础上,引入分形的递归算法,通过绘制小的三角形动作,生成Sierpinski镂垫。如图11。
编程思路及实现
空窗程序
这个程序运行后给出一个黑色背景的空窗,在DrawGLScene函数中,不写任何图形绘制的代码,仅仅进行初始设置。设置F1键的功能为跳出全屏窗口。
int DrawGLScene(GLvoid) // 从这里开始进行所有的绘制
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
// 清除屏幕和深度缓存
glLoadIdentity();
// 重置当前的模型观察矩阵
return TRUE; // 一切 OK
}
画三角形和正方形
画三角形调用glBegin(GL_TRIANGLES)函数,函数中只要指定三个点即可。接着在三角形右侧3个单位距离处画正方形,用glBegin(GL_QUADS),需要四个点。
int DrawGLScene(GLvoid) //
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); //
您可能关注的文档
- 实验8数据库的安全性..doc
- 实验8聚合物拉伸强度和断裂伸长率的测定..doc
- 实验8萘联苯的高效液相色谱分析..doc
- 实验8闪光法导热系数的测定(81-85)4050..doc
- 实验8非线形方程和常微分方程的解法..doc
- 实验9-2SD驱动移植分析..doc
- 实验9-两台S7-300之间的Ethernet通讯..doc
- 实验9linux进程管理与系统监视..doc
- 实验9冰的熔解热的测定(86-95)..doc
- 实验9家兔呼吸活动的调节..doc
- 剧本杀行业报告:内容创作规范与剧本市场拓展策略.docx
- 剧本杀行业区域市场区域文化特色与市场潜力分析报告.docx
- 剧本杀行业区域市场拓展实战案例研究.docx
- 剧本杀行业区域市场拓展路径与模式探索报告.docx
- 剧本杀行业区域市场竞争态势与品牌差异化策略研究报告.docx
- 剧本杀行业2025年西北区域市场市场细分领域竞争态势与品牌竞争策略分析研究报告.docx
- 剧本杀行业2025年西北市场拓展前景预测报告.docx
- 剧本杀行业2025年长沙市场发展潜力分析报告.docx
- 剧本杀行业2025年长三角市场竞争策略与布局分析.docx
- 医疗行业数据合规:2025年数据安全法实施后的合规监管挑战与应对.docx
最近下载
- 《第一单元 生活中的音乐学习项目二 音乐开启心灵之窗》教案(表格式)七年级音乐人教版(2024新版).pdf VIP
- 成功标书大餐——15份浙江省自然科学基金申请书.pdf VIP
- (辽宁富士电梯)系统故障代码及说明.doc VIP
- 2025版高考政治全程一轮复习必修2第一单元生产资料所有制与经济体制第一课我国的生产资料所有制课件.pptx VIP
- 陕西省专业技术人员继续教育2025公需课《党的二十届三中全会精神解读与高质量发展》20学时题库及答案.docx VIP
- 伤口换药护理操作.pptx VIP
- 贵州01-贵州省居住建筑节能设计标准DBJ52-49-20082.pptx VIP
- 《2023年度中国展览数据统计报告》.docx
- 城市名居商住楼房地产估价报告.doc VIP
- [说明]富士变频器维修与故障处理.doc VIP
文档评论(0)