欢迎来到天天文库
浏览记录
ID:59808277
大小:261.00 KB
页数:20页
时间:2020-11-25
《计算机图形学课程设计——构造完整系统复习过程.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、计算机图形学课程设计——构造完整系统主要完成的功能:实现了立方体,圆锥体,球体的数据的输入和模型的建立将输入的体进行三角面片的划分,并对每个面进行消隐对每个可见面进行投影,并自动建立新边表和有效边表计算其光照,运用Phong模型插值得到面内部的颜色值,生成具有真实感物体最后实现了物体的旋转构造完整系统的步骤步骤1:将各种三维图形的面划分为三角面片的形式步骤2:根据光照模型计算三角面片三个顶点处的颜色值,并保存起来步骤3:将三角面片的三个顶点进行透视投影,将它们转换到二维屏幕坐标系上。步骤4:根据透视投影得到的三个顶点自动建立新边表和有效边表步骤5:根据三个顶点的颜色值利用插值公式
2、得到内部各点的颜色值并显示出来小组分工郝刚:整体类框架的建立Phong光照模型陈燕月:桶、边表的自动建立旋转变换林惠珍:各种物体数据的设计、输入投影、消隐透视变换用户坐标系观察坐标系屏幕坐标系凸多面体消隐算法对于凸多面体的任一个面,可以根据其外法矢量和视矢量的夹角θ来进行可见性检测。如果两个矢量的夹角0°≤θ<90°时,表示该表面可见;如果90°<θ≤180°时,表示该表面不可见。ZXYDFECANSB图9-11三棱柱主要函数InitParameter()//透视变换常数Project(P3d&P)//透视变换ReadPoint()//读入点坐标ReadFace()//读入
3、面坐标基本图形的数据结构在三维坐标系下,描述一个物体不仅需要顶点表,而且还需要边表和面表,才能完全表达清楚。立体的数据结构图4-14边表结点其中,x为新增边低端的x
4、ymin值,用于判断边表在桶中的排序;ymax是该边所在的最大扫描线值,用于判断该边何时成为无效边。1/k是边在x方向的变化量和在y方向的变化量的比值,即△x/△y。桶、边表的建立图4-15边表桶、边表的建立主要类结构CreatBucket()//初始化桶结点Et()//构造边表AddAet(Edge*NewEdge)//边插入Aet表AetOrder()//对Aet表进行排序旋转变换主要思想:将视点按一定的角度旋转
5、,实现物体的旋转,期间光源的位置相对视点静止,所以光源位置和视点同步旋转。视点旋转新坐标:改变Thta、Fei角即实现视点位置的改变光源位置和视点相对静止,求新坐标的基函数:Positionx=430*cos(PI/2+PI*Thta/180);Positiony=430*sin(PI/2+PI*Thta/180);Positionz=430*cos(PI/2+PI*Fei/180);根据光源相对视点所处的位置(左上角、右上角等)做适当调整。整体类框架的建立主要类结构P2d类:二维点坐标类P3d类:三维点坐标类Face类:面信息类Verter类:用于向量运算的类ModelColo
6、r类:颜色模型类(包括r,g,b分量,且0<=r,g,b<=1)ModelLight类:光照模型类(包括环境光、漫反射光、镜面反射光以及光源的位置信息)光照模型的实现根据用户输入的材质信息、环境光、漫反射光、镜面反射光信息利用下述两个公式计算出三角面片三个顶点的颜色值光照模型的实现根据三个顶点的颜色值进行插值,得到内部各点的颜色值。首先利用对y插值的公式得到三角面片边上的两个点的颜色值然后利用对x插值的公式得到三角面片一条扫描线上所用点的颜色值总结加深了对课堂上学到的理论和算法的认识项目策划,软件开发和编程能力有了一定的提高培养了团队合作精神由于时间和精力所限,系统还是较为粗糙,
7、有待改进的地方还很多,例如多个物体的交互等。此课件下载可自行编辑修改,仅供参考!感谢您的支持,我们努力做得更好!谢谢
此文档下载收益归作者所有