版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验3:关于任意直线的对称变换实验类型:验证、设计所需时间:3学时主要实验内容及要求:对于任意直线的二维图形对称变化的实验,要求输入的直线是任意直线,直线的端点只能由键盘输入或者鼠标拾取,要做对称变换的图形也是一个任意图形(至少应是一个任意多边形)。对称变换,先分析如何使用一系列简单变换来构造题目要求的复合变换。本体要实现的变换可以用如下一组变换组合来实现: 将直线任一点移至与坐标原点重合 将平移后的直线绕原点旋转至与某一坐标轴重合 将题目要求的对称变换转为实现已知图形关于上述坐标轴的对称变换 按逆序求上述、变换的逆变换 将上述矩阵依次相乘得到最终的复合变换矩阵 则某一多边形关于任意直线的对称
2、变换就转变为将该多边形的各顶点与上述求得的复合变换进行矩阵乘法,求得变换后的新多边形的各个顶点坐标。根据上述流程,编程实现,并测试程序功能。源代码:#include<iostream>#include<gl/glut.h>using namespace std;void Initial(void)glClearColor(1.0f,1.0f,1.0f,1.0f);glMatrixMode(GL_PROJECTION);gluOrtho2D(0.0,200.0,0.0,150.0);class CPointpublic: int x;int y;CPoint()CPoin
3、t(int x1,int y1)x=x1; y=y1; static CPoint ZeroMoveToXY(CPoint p, CPoint XY);/原始坐标向屏幕坐标XY的平移static CPoint ToZero(CPoint p);/关于原点对称 static CPoint XYMoveToZero(CPoint p, CPoint XY);/XY坐标向屏幕坐标的平移static CPoint Charge_AllLine(CPoint p, CPoint line_start, CPoint line_end);/关于Ax+By+C = 0对称;CPoint CPoint:Zer
4、oMoveToXY(CPoint p, CPoint XY)/原始坐标向屏幕坐标XY的平移CPoint result;int change33 = 1,0,0,0,1,0,-XY.x,-XY.y,1;int p13 = 0,0,0;for (int j = 0;j < 3;j+)p1j=p.x * change0j + p.y * change1j + change2j;result.x = p10;result.y = p11;return result;CPoint CPoint:ToZero(CPoint p)/关于原点对称CPoint result;int change33 =
5、-1,0,0,0,-1,0,0,0,1;int p13 = 0,0,0;for (int j = 0;j < 3;j+)p1j=p.x * change0j + p.y * change1j + change2j;result.x = p10;result.y = p11;return result;CPoint CPoint:XYMoveToZero(CPoint p, CPoint XY)/XY坐标向屏幕坐标的平移CPoint result;int change33 = 1,0,0,0,1,0,XY.x,XY.y,1;int p13 = 0,0,0;for (int j = 0;j
6、< 3;j+)p1j=p.x * change0j + p.y * change1j + change2j;result.x = p10;result.y = p11;return result;CPoint CPoint:Charge_AllLine(CPoint p, CPoint line_start, CPoint line_end)/关于Ax+By+C = 0对称double A,B,C;if(line_start.x = line_end.x)A = 1;B = 0;C = -line_start.x;else if(line_start.y = line_end.y)A =
7、 0;B = 1;C = -line_start.y;else A = 1000/(line_end.x - line_start.x);B = -1000/(line_end.y - line_start.y);C = 1000*(-line_start.x/(line_end.x-line_start.x)+line_start.y/(line_end.y - line_start.y);CPoint result;float Y_f = (-A*B*p.x + A*A*p.y - B*C)/(B*B+A*A);float X_f = (-A*B*p.y + B*B*p.x - A*C)/
8、(B*B+A*A);CPoint xy,m1,m2;xy.x=X_f;xy.y = Y_f;m1 = CPoint:ZeroMoveToXY(p, xy);m2 = CPoint:ToZero(m1);result = XYMoveToZero(m2, xy);return result;void Display(void)glClear(GL_COLOR_BUFFER_BIT);glColor3f(1.0f,0.0f,0.0f);glBegin(GL_LINES);int n,x,y,i; cout<<"请输入对称图形的顶点数:"<<endl; c
9、in>>n; CPoint *p=new CPointn; for(i=0;i<n;i+) cout<<"请输入第"<<i+1<<"个顶点坐标"<<endl; cin>>x>>y; pi.x=x; pi.y=y; if(i=0|i=1) glVertex2i(pi.x,pi.y); else if(i=n-1) glVertex2i(pi-1.x,pi-1.y); glVertex2i(pi.x,pi.y); glVertex2i(pi.x,pi.y); glVer
10、tex2i(p0.x,p0.y); else glVertex2i(pi-1.x,pi-1.y); glVertex2i(pi.x,pi.y); cout<<"请输入对称直线的两个顶点:"<<endl;CPoint *p2=new CPoint2;for(i=0;i<2;i+)cout<<"请输入第"<<i+1<<"个顶点坐标"<<endl; cin>>x>>y; p2i.x=x; p2i.y=y;glVertex2i(p2i.x,p
11、2i.y); for(i=0;i<n;i+)pi=CPoint:Charge_AllLine(pi, p20, p21);if(i=0|i=1) glVertex2i(pi.x,pi.y); else if(i=n-1) glVertex2i(pi-1.x,pi-1.y); glVertex2i(pi.x,pi.y); glVertex2i(pi.x,pi.y); glVertex2i(p0.x,p0.y); else glVertex2i(pi-1.x,pi-1.y); glVertex2i(pi.x,pi.y); glEnd(); glFlush();int main(int argc,char*argv)glutInit(&argc,argv);glutInitDisplayMode(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度声学工程设计施工合同
- 2024年度医疗器械销售合同标的详细解析2篇
- 《黄金投资说明会》课件
- 2024年度机器设备租赁合同:叉车、堆高机等
- 安全用电施工协议书模板
- 2024年度企业间借款协议
- 九年级化学上册 6 碳和碳的氧化物教案 (新版)新人教版
- 《网络营销服务》课件
- 2024年冬春航季民航客运航班数据解读
- 2024年度甲乙双方房屋买卖合同
- 一年级家长会课件2024-2025学年
- 《扣件式钢管脚手架安全技术规范》JGJ130-2023
- (最新)陕西省建筑工程施工质量验收技术资料管理整编规定及指
- 乌兹别克斯坦新增进口商品消费税税率表
- 设立出版物零售企业申请表.doc
- 基于人才战略的企业年金在民办高校中的应用研究
- 消防维保年度总结范文(2篇)精选范文
- 天津科技大学 大学物理(下)本科试卷(A卷)(含答案)
- 消防应急组织架构图
- 锅炉安装工程—质量证明书(散装)
- 铁矿矿山环境保护与综合治理方案
评论
0/150
提交评论