已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计算机科学与通信工程学院实验报告课程计算机图形学实验题目二维图形变换学生姓名学号专业班级指导教师日期成绩评定表评价内容具体内容权重得分论证分析方案论证与综合分析的正确、合理性20%算法设计算法描述的正确性与可读性20%编码实现源代码正确性与可读性30%程序书写规范标识符定义规范,程序书写风格规范20%报告质量报告清晰,提交准时10%总 分指导教师签名 二维图形变换1. 实验内容 完成对北极星图案的缩放、平移、旋转、对称等二维变换。 首先要建好图示的北极星图案的数据模型(顶点表、边表)。另外,可重复调用“清屏”和“暂停”等函数,使整个变换过程具有动态效果。2. 实验环境操作系统:Windows XP开发工具:visual studio 20083. 问题分析 为了建立北极星图形,首先在二维空间中根据坐标绘制出北极星图形。并且在此坐标系中确定好走笔顺序以便于进行连线操作。 同时需要好好的使用清屏函数以使得显示正常。 1. 放大缩小变换 放大缩小变换公式为:x=x.a, y=y.d; 其中a,d分别为x,y方向的放缩比例系数。 可通过不同的比例系数来显示程序运行结果。当a=d时为等比例放缩操作。可令变换矩阵为T。 2. 对称变换 包括以x轴对称、y轴对称和原点O对称三种。由于屏幕坐标只有第一象限,我们可以将原点平移到(500,240)处。在第一象限画出一个三角形,然后分别求出三个对称图形。 3. 旋转变换 将图形上的点(x,y)旋转角度,得到新的坐标(x,y)为: x=xcos-ysin, y=xsin+ycos; 旋转矩阵T为4平移变换 4. 算法设计 5. 源代码/北极星void hzbjx(CDC* pDC,long x18,long y18) CPen newPen1,*oldPen; newPen1.CreatePen(PS_SOLID,2,RGB(255,0,0);oldPen = pDC-SelectObject(&newPen1); POINT vertex111=x1,y1,x2,y2,x3,y3,x4,y4,x5,y5,x3,y3,x1,y1,x6,y6,x3,y3,x7,y7,x5,y5; pDC-Polyline(vertex1, 11); newPen1.DeleteObject(); newPen1.CreatePen(PS_SOLID, 2, RGB(0,255,0); oldPen = pDC-SelectObject(&newPen1); POINT vertex25=x6,y6,x8,y8,x9,y9,x3,y3,x8,y8; pDC-Polyline(vertex2, 5); POINT vertex35=x4,y4,x10,y10,x11,y11,x3,y3,x10,y10; pDC-Polyline(vertex3, 5); newPen1.DeleteObject(); newPen1.CreatePen(PS_SOLID, 2, RGB(255,0,90); oldPen = pDC-SelectObject(&newPen1); POINT vertex411=x12,y12,x13,y13,x3,y3,x9,y9,x14,y14,x15,y15,x3,y3,x11,y11,x12,y12,x3,y3,x14,y14; pDC-Polyline(vertex4, 11); newPen1.DeleteObject(); newPen1.CreatePen(PS_SOLID, 2, RGB(0,100,255); oldPen = pDC-SelectObject(&newPen1); POINT vertex55=x15,y15,x16,y16,x3,y3,x16,y16,x7,y7; pDC-Polyline(vertex5, 5); POINT vertex65=x2,y2,x17,y17,x3,y3,x17,y17,x13,y13; pDC-Polyline(vertex6, 5); pDC-SelectObject(oldPen); Sleep(10); void CDiamondView:Polaris()InvalidateRgn(NULL); UpdateWindow(); CDC *pDC = GetDC(); long x18,y18; x1=553,y1=100; x2=515,y2=251; x3=553,y3=338; x4=516,y4=426; x5=553,y5=551; x6=589,y6=253; x7=591,y7=426; x8=678,y8=212; x9=641,y9=311; x10=454,y10=438; x11=478,y11=364; x12=415,y12=338; x13=466,y13=301; x14=703,y14=338; x15=640,y15=375; x16=665,y16=450; x17=440,y17=226; hzbjx(pDC,x,y); Sleep(500); InvalidateRect(NULL); UpdateWindow(); long x118,y118; /缩小for(double n=1;n=0.5;n-=0.01)for (int i=1;i18;i+) x1i=Round(xi*n); y1i=Round(yi*n); hzbjx(pDC,x1,y1);Sleep(10); InvalidateRect(NULL); UpdateWindow(); InvalidateRect(NULL); UpdateWindow(); long x218,y218; /放大for(double n=1;n=1.5;n+=0.01)for (int i=1;i18;i+) x2i=Round(x1i*n); y2i=Round(y1i*n); hzbjx(pDC,x2,y2);Sleep(10); InvalidateRect(NULL); UpdateWindow(); InvalidateRect(NULL); UpdateWindow(); hzbjx(pDC,x,y); Sleep(500);long x318,y318; /沿X轴平移 for(int n=0;n=300;n+=2)for(int j=1;j18;j+) x3j=xj+n; y3j=yj; hzbjx(pDC,x3,y3);Sleep(1); InvalidateRect(NULL); UpdateWindow(); long x418,y418; /沿Y轴平移 for(int n=0;n=300;n+=2)for(int j=1;j18;j+) x4j=x3j; y4j=y3j+n; hzbjx(pDC,x4,y4);Sleep(1); InvalidateRect(NULL); UpdateWindow(); long x518,y518; /顺时针旋转 for (double t=0;t=PI;t+=0.01) for(int k=1;k=0;t-=0.01) for(int k=1;k18;k+) x6k=Round(xk*cos(t)-yk*sin(t)-x3*cos(t)+y3*sin(t)+x3); y6k=Round(xk*sin(t)+yk*cos(t)-x3*sin(t)-y3*cos(t)+y3); hzbjx(pDC,x6,y6); InvalidateRect(NULL); UpdateWindow(); Sleep(500); long x718,y718;/沿X=1000对称 for(int l=1;l18;l+) xl=Round(xl*0.5);yl=Round(yl*0.5);x7l=1000-xl; y7l=yl; hzbjx(pDC,x,y);hzbjx(pDC,x7,y7);Sleep(200); long x818,y818;/沿Y=600对称 for(int l=1;l18;l+) x8l=xl; y8l=600-yl; hzbjx(pDC,x,y);hzbjx(pDC,x8,y8);Sleep(200); long x918,y918; for(int l=1;l18;l+) x9l=1000-xl; y9l=600-yl; hzbjx(pDC,x,y);hzbjx(pDC,x9,y9);6. 程序运行结果图1 北极星图案的数据模型图2 北极星图案的缩放图3 北极星
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 新能源光伏系统故障诊断与处理方案
- 小学主题班会课件:勤学如春起之苗
- 房地产经纪人客户接待流程标准手册
- 筑牢心理防线守护心灵健康小学五年级主题班会课件
- 2026四川成都航空职业技术大学招聘助学助管员与科研助理128人(第三批)参考题库含答案详解【培优A卷】
- 2026河北雄安新区安新县公共服务局招聘专项岗位人员200名笔试题库(考点精练)附答案详解
- 招1人【招聘】西宁市城北区火车西站社区卫生服务中心财务岗位招聘参考题库【B卷】附答案详解
- T-ZZB 2925-2022 手动分离式油压千斤顶
- 校园安全记心头小学主题班会课件
- DT公司巴基斯坦PQ电站运维风险管理研究
- 国家职业技能标准-农业技术员
- SL+258-2017水库大坝安全评价导则
- 网络安全设备巡检记录表
- 家政服务员(母婴护理员)(三级/高级工)理论知识试题及答案
- 建筑智慧运维与故障诊断
- 职业生涯发展展示 (修改)
- 《无人机维护技术》 课件 项目3 维护典型作业无人机
- 湖北小学生诗词大赛备考试题库400题(三四年级适用)
- 普通诊所污水、污物、粪便处理方案 及周边环境情况说明
- 蔡志忠漫画国学系列孙子兵法
- 反比例函数 单元作业设计
评论
0/150
提交评论