计算机图形学投影变换_第1页
计算机图形学投影变换_第2页
计算机图形学投影变换_第3页
计算机图形学投影变换_第4页
计算机图形学投影变换_第5页
免费预览已结束,剩余8页可下载查看

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、计算机图形学投影变换部门:xxx时问:xxx整理范文,仅供参考,可下载自行编辑计算机图形学实验报告实验三 三维图形的投影变换学生姓名专业、班级指导教师成绩电子与信息工程系2018年11月6日一、实验目的:绘制三维物体的轴测投影图和一点透视图,在程序中给定控制多面体的顶点坐标及点线信息。视点固定在 z轴某点上,输入物体 的旋转角度及平移量。正轴测投影图和一点透视图。b5E2RGbCAP二、题目:三维图象的基本变换三、设计思想:因为电脑显示的是2维持坐标图象,所以在设计时要将三维的图 象坐标转换成电脑能显示的二维持坐标图,然后根据图象的基本变 换矩阵计算出变换后的坐标点,最后绘制出图象变换效果。p

2、lEanqFDPw四、原程序:CPoint dian228o/ 六面体的8 个 2 维坐标点CPoint dian8 。float coordinate283 。float coordinate383 六面体的8 个 3 维坐标点Void draw6angle(>/ 绘制一个六面方体。dc.MoveTo(0,0> 。 /yuan dian zuo biao dian(400,400>dc.LineTo(400,0> 。x / 绘制一 x 轴,Y,Z 轴dc.MoveTo(0,0> 。dc.LineTo(0,400> 。 /ydc.MoveTo(50,50&g

3、t;。 /z dc.LineTo(-200,-200> 。dc.MoveTo(dian0> 。 /0-1dc.LineTo(dian1> 。dc.MoveTo(dian0> 。 /0-3dc.LineTo(dian3> 。dc.MoveTo(dian0> 。 /0-7dc.LineTo(dian7> 。dc.MoveTo(dian4> 。 /4-3dc.LineTo(dian3> 。dc.MoveTo(dian4> 。 /4-5dc.LineTo(dian5> 。dc.MoveTo(dian4> 。 /4-7dc.Line

4、To(dian7> 。dc.MoveTo(dian6> 。 /6-5dc.LineTo(dian5> 。dc.MoveTo(dian6> 。 /6-7dc.LineTo(dian7> 。dc.MoveTo(dian6> 。 /6-1dc.LineTo(dian1> 。dc.MoveTo(dian2> 。 /2-1dc.LineTo(dian1> 。dc.MoveTo(dian2> 。 /2-3dc.LineTo(dian3> 。dc.MoveTo(dian2> 。 /2-5dc.LineTo(dian5>void C

5、CBod_3DView:switch_point(>/ 将三维坐标点转换成电脑上能表示的二维坐标点DXDiTa9E3d float canshu=0.7071。for(int i=0。 i<8 。 i+>diani.x=float(coordinate3i0+float(-coordinate3i2*canshu>>> 。 RTCrpUDGiTdiani.y=float(coordinate3i1+float(-coordinate3i2*canshu>>>5PCzVD7HxAvoid CCBod_3DView:OnMoveOnz(>

6、 / 图象在 Z轴上的移动。/ TODO: Add your command handler code herefor(int i=0。 i<8 。 i+>coordinate3i2=coordinate3i2+50。this->Invalidate(> 。void CCBod_3DView:OnSpinz(> /Z 轴上旋转 / TODO: Add your command handler code herefloat b=cos(0.23>。float a=sin(0.23>。for(int i=0。 i<8 。 i+> coordin

7、ate3i0=float(coordinate3i0*b>+float(coordinate3i1*(-a>> 。 jLBHrnAILgcoordinate3i1=float(coordinate3i0*a>+coordinate3i1*b。 xHAQX74J0XOnLarge(>this->Invalidate(> 。void CCBod_3DView:OnDUICHeng(> / 关于 X对称/ TODO: Add your command handler code here for(int i=0。 i<8 。 i+>coord

8、inate3i2= -coordinate3i2 this->Invalidate(> 。void CCBod_3DView:OnZhengzhouce(> / 轴测投影图/ TODO: Add your command handler code here if(flage=false> flage=true 。else flage=falsefloat dian383i<8 。 i+>for(int i=0dian3i0=coordinate3i0。dian3i1=coordinate3i1。dian3i2=coordinate3i2。float a,b,

9、c 。float angle_a=3.1415/4。float angle_b=3.1415/6。for(int j=0。 j<8 。 j+>a=dian3j0。b=dian3j1。c=dian3j2。dian3j0=float( a*cos(angle_a>b*sin(angle_a> > 。 LDAYtRyKfEdian3j1=0。dian3j2=float(sin(angle_b>*( a*sin(angle_a>+b*cos(angle_a> >c*cos(angle_b> > 。 Zzz6ZB2Ltkfloat canshu=0.7071 。for(int i2=0。 i2<8。 i2+>dian22i2.x=float (dian3i20+float(-dian22i2.y=float(dian3i21+float(-dian3i22*canshu>>> 。 rqyn14ZNXIthis->Invalidate(> 。void CCBod_3DView:OnONEView(> / 一点透视图象/ TODO: Add your command handler code herthis->I

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论