- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机图形学实验报告
实验三 三维图形的投影变换
学生姓名
专业、班级
指导教师
成绩
电子与信息工程系
2010 年 11月 6日
实验目的:
绘制三维物体的轴测投影图和一点透视图 ,在程序中给定控制多面体的顶点坐标及点线信息。视点固定在z轴某点上,输入物体的旋转角度及平移量。正轴测投影图和一点透视图。
二、题目:
三维图象的基本变换
三、设计思想:
因为电脑显示的是2维持坐标图象,所以在设计时要将三维的图象坐标转换成电脑能显示的二维持坐标图,然后根据图象的基本变换矩阵计算出变换后的坐标点,最后绘制出图象变换效果。
四、原程序:
CPoint dian22[8];//六面体的8个2维坐标点
CPoint dian[8];
float coordinate2[8][3];
float coordinate3[8][3] 六面体的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);//y
dc.MoveTo(50,50);//z
dc.LineTo(-200,-200);
dc.MoveTo(dian[0]);//0-1
dc.LineTo(dian[1]);
dc.MoveTo(dian[0]);//0-3
dc.LineTo(dian[3]);
dc.MoveTo(dian[0]);//0-7
dc.LineTo(dian[7]);
dc.MoveTo(dian[4]);//4-3
dc.LineTo(dian[3]);
dc.MoveTo(dian[4]);//4-5
dc.LineTo(dian[5]);
dc.MoveTo(dian[4]);//4-7
dc.LineTo(dian[7]);
dc.MoveTo(dian[6]);//6-5
dc.LineTo(dian[5]);
dc.MoveTo(dian[6]);//6-7
dc.LineTo(dian[7]);
dc.MoveTo(dian[6]);//6-1
dc.LineTo(dian[1]);
dc.MoveTo(dian[2]);//2-1
dc.LineTo(dian[1]);
dc.MoveTo(dian[2]);//2-3
dc.LineTo(dian[3]);
dc.MoveTo(dian[2]);//2-5
dc.LineTo(dian[5])}
}
void CCBod_3DView::switch_point()//将三维坐标点转换成电脑上能表示的二维坐标点
{ float canshu=0.7071;
for(int i=0;i8;i++)
{ dian[i].x=float (coordinate3[i][0]+float((-coordinate3[i][2]*canshu)));
dian[i].y=float (coordinate3[i][1]+float((-coordinate3[i][2]*canshu)));
} }
void CCBod_3DView::OnMoveOnz() //图象在Z轴上的移动。
{
// TODO: Add your command handler code here
for(int i=0;i8;i++)
{
coordinate3[i][2]=coordinate3[i][2]+50;
}
this-Invalidate();
}
void CCBod_3DView::OnSpinz() //Z轴上旋转
{ // TODO: Add your command handler code here
float b=cos(0.23);
float a=sin(0.23);
for(int i=0;i8;i++)
{ coordinate3[i][0]=float(coordinate3[i][0]*b)+float(coordinate3[i][1]*(-a));
coordinate3[i][1]=float(coordinate3[i][0]*a)+coordinate3[i][1]*b;
}
OnLarge();
this-Invalidate();
}
voi
您可能关注的文档
- 聚美优品案例分析.ppt
- 苏格拉底三段论.ppt
- 英语散文名篇欣赏.doc
- 菜籽油项目策划书.doc
- 苏教版二上识 字 2第1课时.ppt
- 能改参数的PPT饼图模版.ppt
- 苗木的播种繁殖.ppt
- 脊柱结核(精品PPT).ppt
- 自动控制原理 王建辉.ppt
- 营业员服务礼仪培训.ppt
- 第30课 中国特色社会主义新时代和全面建成小康社会 课件中职高一上学期高教版中国历史全一册.pptx
- 11.2树立正确的人生目标 课件 七年级道德与法治上册(统编版).ppt
- Act it out You're late! 课件外研版英语三年级下册.ppt
- 第18课 北洋军阀的统治 课件中职高一上学期高教版中国历史全一册.pptx
- Project 1A good student 课件译林英语三年级下册.ppt
- Unit 2From head to toe第2课时(Story time) 课件剑桥英语三年级下册.ppt
- 7.2共建美好集体 课件 七年级道德与法治上册(统编版).ppt
- Unit 3 My familyLesson 2 课件精通版英语三年级下册.ppt
- 第16课 探索国家出路与挽救民族危亡的斗争 课件 中职高一上学期高教版中国历史全一册.pptx
- 3.1 地球宇宙的奇迹(教学课件) 教科版科学五年级下册.ppt
文档评论(0)