正交投影 (图形学).doc

正交投影 (图形学).doc

ID:56709856

大小:107.00 KB

页数:4页

时间:2020-07-05

正交投影 (图形学).doc_第1页
正交投影 (图形学).doc_第2页
正交投影 (图形学).doc_第3页
正交投影 (图形学).doc_第4页
资源描述:

《正交投影 (图形学).doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、太原工业学院计算机工程系实验报告课程名称计算机图形学班级实验日期2014/5/19姓名学号实验成绩实验名称正交投影算法实验目的及要求1.学习立方体的几何模型;2.学习了解正交投影变换矩阵;3.熟悉立方体线框模型绘制方法。实验环境VC++6.0实验内容在屏幕客户区中心绘制立方体的二维正交投影线框图,通过工具栏的“动画”图标按钮旋转立方体算法描述及实验步骤1、读入立方体的8个顶点构成的顶点表与6个表面构成的表面表;2、使用正交投影矩阵在屏幕坐标系内绘制立方体的正投影,也即将立方体的z坐标取为零绘制其二维投影;3、设计三维几何变换类CTransform,

2、使用类对象旋转立方体;4、使用双缓冲技术绘制立方体旋转动画。调试过程及实验结果总结1.会绘制立方体线框模型;2.掌握了立方体二维正交投影图的绘制、旋转方法。附录1、立方体点表voidCTestView::ReadPoint()//点表{//顶点的三维坐标(x,y,z),立方体边长为2adoublea=150;P[0].x=-a;P[0].y=-a;P[0].z=-a;P[1].x=+a;P[1].y=-a;P[1].z=-a;P[2].x=+a;P[2].y=+a;P[2].z=-a;P[3].x=-a;P[3].y=+a;P[3].z=-a;P[

3、4].x=-a;P[4].y=-a;P[4].z=+a;P[5].x=+a;P[5].y=-a;P[5].z=+a;P[6].x=+a;P[6].y=+a;P[6].z=+a;P[7].x=-a;P[7].y=+a;P[7].z=+a;}1、立方体面表voidCTestView::ReadFace()//面表{//面的顶点数和面的顶点索引F[0].SetNum(4);F[0].vI[0]=4;F[0].vI[1]=5;F[0].vI[2]=6;F[0].vI[3]=7;//前面F[1].SetNum(4);F[1].vI[0]=0;F[1].vI[

4、1]=3;F[1].vI[2]=2;F[1].vI[3]=1;//后面F[2].SetNum(4);F[2].vI[0]=0;F[2].vI[1]=4;F[2].vI[2]=7;F[2].vI[3]=3;//左面F[3].SetNum(4);F[3].vI[0]=1;F[3].vI[1]=2;F[3].vI[2]=6;F[3].vI[3]=5;//右面F[4].SetNum(4);F[4].vI[0]=2;F[4].vI[1]=3;F[4].vI[2]=7;F[4].vI[3]=6;//顶面F[5].SetNum(4);F[5].vI[0]=0;F

5、[5].vI[1]=1;F[5].vI[2]=5;F[5].vI[3]=4;//底面}2、绘制立方体线框模型voidCTestView::DrawObject(CDC*pDC)//绘制立方体线框{CP3ScreenP,t;CLine*line=newCLine;for(intnFace=0;nFace<6;nFace++)//面循环{for(intnPoint=0;nPointMoveTo(

6、pDC,ScreenP);t=ScreenP;}elseline->LineTo(pDC,ScreenP);}line->LineTo(pDC,t);//闭合多边形}deleteline;}3、动画按钮函数voidCTestView::OnPlay()//动画按钮函数{//TODO:AddyourcommandhandlercodeherebPlay=bPlay?FALSE:TRUE;if(bPlay)//设置定时器SetTimer(1,150,NULL);elseKillTimer(1);}1、定时器处理函数voidCTestView::OnTi

7、mer(UINTnIDEvent)//定时器处理函数{//TODO:Addyourmessagehandlercodehereand/orcalldefaultAlpha=5;Beta=5;tran.RotateX(Alpha);tran.RotateY(Beta);Invalidate(FALSE);CView::OnTimer(nIDEvent);}2、动画按钮控制状态函数voidCTestView::OnUpdatePlay(CCmdUI*pCmdUI)//动画按钮状态函数{//TODO:AddyourcommandupdateUIhandl

8、ercodehereif(bPlay){pCmdUI->SetCheck(TRUE);pCmdUI->SetText("停

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。