




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验报告 学院:计算机 学号: 姓名:实验四 二维图形的基本几何变换一、实验目的 1掌握二维图形基本的几何变换原理及变换矩阵; 2掌握矩阵运算的程序设计。二、实验内容 实现二维图形的基本变换,包括平移、旋转、比例、对称变换。三、实验环境硬件平台:PC运行环境: Windows平台,Visual C+四、算法描述二维图形齐次坐标变换矩阵一般表达式 T =这 33 矩阵中各元素功能一共可分成四块,即a、b、c、d 四项用于图形的比例、对称、错切、旋转等基本变换; k、m用于图形的平移变换;p、q 用于图形的透视变换; s用于图形的全比例变换。 平移变换旋转变化放缩变换五、实验过程5.1打开Visualc+6.0程序5.2新建一个C+项目5.3单击完成,双击源文件里的二维图形几何变换View.cpp,出现下图5.5找到其中的OnDraw函数,并将其改成如下,使其实现了一条直线的平移。void C二维图形几何变换View:OnDraw(CDC* pDC)C二维图形几何变换Doc* pDoc = GetDocument();ASSERT_VALID(pDoc);if (!pDoc)return;/ TODO: 在此处为本机数据添加绘制代码int a33;int i,j;for(i=0;i3;i+)for(j=0;j3;j+)aij=0;for(i=0;iMoveTo(x1,y1); E:c+6.0安装MSDev98MyProjectspDC-LineTo(x0,y0); a20=80;/使直线在行方向上平移了80个单位a21=50;/使直线在列方向上平移了50个单位x0=x0*a00+y0*a10+a20;y0=x0*a01+y0*a11+a21;x1=x1*a00+y1*a10+a20;y1=x1*a01+y1*a11+a21;pDC-MoveTo(x1,y1);pDC-LineTo(x0,y0); 5.6单击运行程序并有如下结果5.7找到其中的OnDraw函数,并将其改成如下,使其实现了一条直线的平移和缩放。void C二维图形几何变换View:OnDraw(CDC* pDC)C二维图形几何变换Doc* pDoc = GetDocument();ASSERT_VALID(pDoc);if (!pDoc)return;/ TODO: 在此处为本机数据添加绘制代码float a33;int i,j;for(i=0;i3;i+)for(j=0;j3;j+)aij=0;for(i=0;iMoveTo(x0,y0);pDC-LineTo(x1,y1); a20=0;/使直线在行方向上平移了个单位a21=30;/使直线在列方向上平移了个单位a00=2; /图形放大一倍a11=2; /图形放大一倍x0=x0*a00+y0*a10+a20;y0=x0*a01+y0*a11+a21;x1=x1*a00+y1*a10+a20;y1=x1*a01+y1*a11+a21;pDC-MoveTo(x0,y0);pDC-LineTo(x1,y1);5.8单击运行程序并有如下结果5.9找到其中的OnDraw函数,并将其改成如下,使其实现了一条直线的对称变换。void C二维图形几何变换View:OnDraw(CDC* pDC)C二维图形几何变换Doc* pDoc = GetDocument();ASSERT_VALID(pDoc);if (!pDoc)return;/ TODO: 在此处为本机数据添加绘制代码float a33;int i,j;for(i=0;i3;i+)for(j=0;j3;j+)aij=0;for(i=0;iMoveTo(x0,y0);pDC-LineTo(x1,y1);pDC-MoveTo(x0,y1);/ 画出X轴pDC-LineTo(500,y1);/ 画出X轴 y0=y0+(y1-y0)*2;/实现X轴的对称轴的重点Y坐标pDC-MoveTo(x1,y1);/画出X轴的对称轴pDC-LineTo(x0,y0);/画出X轴的对称轴5.10单击运行程序并有如下结果5.11找到其中的OnDraw函数,并将其改成如下,使其实现了一条直线的旋转变换。void C二维图形几何变换View:OnDraw(CDC* pDC)C二维图形几何变换Doc* pDoc = GetDocument();ASSERT_VALID(pDoc);if (!pDoc)return;/ TODO: 在此处为本机数据添加绘制代码float a33;int i,j;for(i=0;i3;i+)for(j=0;j3;j+)aij=0;for(i=0;iMoveTo(x0,y0);pDC-LineTo(x1,y1); a00=0.866;a11=0.866;a01=0.5;a10=-0.5;x0=x0*a00+y0*a10+a20;y0=x0*a01+y0*a11+a21;x1=x1*a00+y1*a10+a20;y1=x1*a01+y1*a11+a21;pDC-MoveTo(x0,y0);pDC-LineTo(x1,y1);5.12单击运行程序并有如下结果六、注意事项5.1这里实现的二维几何变换是以直线为例的,其他二维图形可以由多条直线段获曲线段做相同的变化而实现。5.2上
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 30692-2025提高在用自动扶梯和自动人行道安全性的规范
- 停车技术考试题及答案
- 田径考试试题及答案
- 第41个教师节校长讲话:三心育德润心田三志引领立师范三力汇聚启新篇
- 2025年高压电工复审考试及考试题库含答案
- 2025年高级维修电工理论知识复习题库及答案
- 2025年高级保安员模拟试题及答案
- 铁路船务知识题库及答案
- 财务审批流程管理办法
- 西藏特产仓储管理办法
- 初中综合实践课程活动教案5篇(初中综合实践活动课件)
- 旗袍英文介绍课件
- 模块二-化肥减施增效基础知识课件
- 咽喉科内镜诊疗技术管理规范
- 小学各项安全管理制度汇编
- 北京香格里拉饭店庭园环境设计
- 预防未成年犯罪主题班会
- 语文版七年级上第五单元《犟龟》作业
- 新能源汽车高压安全与防护考核试题及答案
- 电气改造工程施工组织设计
- JJG 52-2013弹性元件式一般压力表、压力真空表和真空表
评论
0/150
提交评论