正交投影(图形学)

上传人:飞*** 文档编号:47171170 上传时间:2018-06-30 格式:PDF 页数:4 大小:106.68KB
返回 下载 相关 举报
正交投影(图形学)_第1页
第1页 / 共4页
正交投影(图形学)_第2页
第2页 / 共4页
正交投影(图形学)_第3页
第3页 / 共4页
正交投影(图形学)_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《正交投影(图形学)》由会员分享,可在线阅读,更多相关《正交投影(图形学)(4页珍藏版)》请在金锄头文库上搜索。

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

2、缓冲技术绘制立方体旋转动画。太原工业学院计算机工程系 实 验 报 告调试过程及实验结果总结1.会绘制立方体线框模型;2.掌握了立方体二维正交投影图的绘制、旋转方法。附录1、 立方体点表 void CTestView:ReadPoint()/点表 / 顶点的三维坐标(x,y,z),立方体边长为2a double a=150; P0.x=-a;P0.y=-a;P0.z=-a; P1.x=+a;P1.y=-a;P1.z=-a; P2.x=+a;P2.y=+a;P2.z=-a; P3.x=-a;P3.y=+a;P3.z=-a; P4.x=-a;P4.y=-a;P4.z=+a; P5.x=+a;P5.y

3、=-a;P5.z=+a; P6.x=+a;P6.y=+a;P6.z=+a; P7.x=-a;P7.y=+a;P7.z=+a; 2、 立方体面表 void CTestView:ReadFace()/面表 / 面的顶点数和面的顶点索引 F0.SetNum(4);F0.vI0=4;F0.vI1=5;F0.vI2=6;F0.vI3=7;/ 前面 F1.SetNum(4);F1.vI0=0;F1.vI1=3;F1.vI2=2;F1.vI3=1;/ 后面 F2.SetNum(4);F2.vI0=0;F2.vI1=4;F2.vI2=7;F2.vI3=3;/ 左面F3.SetNum(4);F3.vI0=1;F

4、3.vI1=2;F3.vI2=6;F3.vI3=5;/ 右面 F4.SetNum(4);F4.vI0=2;F4.vI1=3;F4.vI2=7;F4.vI3=6;/ 顶面F5.SetNum(4);F5.vI0=0;F5.vI1=1;F5.vI2=5;F5.vI3=4;/ 底面 3、 绘制立方体线框模型 void CTestView:DrawObject(CDC* pDC)/绘制立方体线框 CP3 ScreenP,t; CLine *line=new CLine; for(int nFace=0;nFaceMoveTo(pDC,ScreenP); t=ScreenP; else line-Line

5、To(pDC,ScreenP); line-LineTo(pDC,t);/闭合多边形 delete line; 4、 动画按钮函数 void CTestView:OnPlay()/动画按钮函数 / TODO: Add your command handler code here bPlay=bPlay?FALSE:TRUE; if(bPlay)/设置定时器SetTimer(1,150,NULL); else KillTimer(1); 5、 定时器处理函数 void CTestView:OnTimer(UINT nIDEvent)/定时器处理函数 / TODO: Add your messag

6、e handler code here and/or call default Alpha=5;Beta=5; tran.RotateX(Alpha); tran.RotateY(Beta); Invalidate(FALSE); CView:OnTimer(nIDEvent); 6、 动画按钮控制状态函数 void CTestView:OnUpdatePlay(CCmdUI* pCmdUI)/动画按钮状态函数 / TODO: Add your command update UI handler code here if(bPlay) pCmdUI-SetCheck(TRUE); pCmdUI-SetText(“停止 “); else pCmdUI-SetCheck(FALSE); pCmdUI-SetText(“开始 “);

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号