- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
球体消隐课程设计报告
目 录
一.设计内容与要求…………………………………………2
1.1 总体目标和要求……………………………………2
1.2 内容与要求…………………………………………2
二.总体设计…………………………………………………2
2.1 球的消隐处理基本原理……………………………2
2.2 具体设计实现………………………………………3
三.详细设计…………………………………………………3
3.1 程序流程图…………………………………………3
3.2调试后正确的程序清单…………………………… 5
功能实现……………………………………………… 10
4.1程序运行结果………………………………………10
4.2 功能实现及分析……………………………………10
总结…………………………………………………… 11
参考文献……………………………………………… 11
球体背面剔除消隐算法
第1章 设计内容与要求
总体目标和要求
课程设计的目的:以图形学算法为目标,深入研究。继而策划、设计并实现一个能够表现计算机图形学算法原理的或完整过程的演示系统,并能从某些方面作出评价和改进意见。通过完成一个完整程序,经历策划、设计、开发、测试、总结和验收各阶段,达到:
巩固和实践计算机图形学课程中的理论和算法;
学习表现计算机图形学算法的技巧;
培养认真学习、积极探索的精神;
具备通过具体的平台实现图形算法的设计、编程与调试的能力;
完成对实验结果分析、总结及撰写技术报告的能力。
总体要求:策划、设计并实现一个能够充分表现图形学算法的演示系统,界面要求美观大方,能清楚地演示算法执行的每一个步骤。
开发环境:Viusal C++ 6.0
1.2 内容与要求
球体背面剔除消隐算法
内容:
(1)掌握背面剔除消隐算法原理;
(2)实现矢量点积与叉积运算;
(3)透视投影变换
(4)曲面体经纬线划分方法
功能要求:
(1)绘制球体线框模型的透视投影图,使用背面剔除算法实现动态消隐;
(2)通过右键菜单显示消隐效果,右键菜单有两个选项:未消隐与消隐;
(3)使用键盘的上下左右控制键旋转消隐前后的球体;
(4)单击左键增加视距,右击缩短视距;
第2章 总体设计
2.1 球的消隐处理基本原理
球体的曲面通常采用一组网格多边形来表示,即把曲面离散成许多小平面片,用平面逼近曲面,一般使用许多四边形来逼近曲面。网格四边形愈多,逼近曲面的精度就愈高,逼近效果就愈好,曲面看起来就越光滑。一般根据实际需要来确定合适的逼近精度即网格多边形数目。当曲面表示为一组网格多边形时,消隐处理的主要工作是确定各网格多边形的可见性,由此可用平面立体的算法对曲面进行消隐处理。
球面的参数方程为:
x=R· sina·cosβ
y=R· sina· sinβ (0≤a≤π, 0≤β≤2π)
z=R· cosa
设两个参数a和β对球面进行网格化,当相邻的曲线参数分别为a1、a2、β1、β2时,构成四边形网格P0P1P2P3,其外法线N表示如下:
N= P0P1×P1P2
对N进行单位化:n={nx,ny,nz}= n/|N|
若设视方向为S,其平行于y轴: S={0,1,0}
① n·S= ny≥0,网格可见,画出;
② n·S= ny0,网格不可见,不画
2.2 具体设计实现
(1) 掌握运行环境Visual C++编程、调试方法,熟练掌握OpenGL的使用,并能将两者相结合完成实验设计;
OpenGL中的函数绘制一个线框球并显示出来。具体方案如下:
(a)先通过透视投影变换绘制出小四边形平面片,进行球体线框模型的绘制。
(b)完成球体的绘制后,进行设置球体的旋转效果,根据球体背面剔除消隐算法来完成球体的动态消隐。
(c)创建右键菜单显示消隐效果,右键菜单有未消隐和消隐两个选项。
(d)设置使用键盘的上下左右控制键旋转消隐前后的球体。
(e)设置单击鼠标左键增加视距,右击缩短视距。
(f)编写主函数,然后编写以上思想的子函数,对整个程序进行基本的代码编写,分模块完成所要求的各个功能,最后进行代码的运行和调试。
第3章 详细设计
3.1 程序流程图
程序主流程图
3.2调试后正确的程序清单
#include
文档评论(0)