- 13
- 0
- 约2.13千字
- 约 3页
- 2018-03-09 发布于河南
- 举报
实现简单图形的二维几何变换
实验五 实现简单图形的二维几何变换
一、实验目的与要求:
1.巩固图形学中关于二维几何变换的算法;
2.编写程序实现一个简单图形的平移、比例、旋转、对称和错切几何变换;
二、实验环境
VC++6.0 MFC类
三、实验内容:
void CTuxingbianhuanView::bianhua()
{
CClientDC dc(this);
CPen pen1,pen2,pen3;
pen1.CreatePen(PS_SOLID,2,RGB(255,10,255));
pen2.CreatePen(PS_SOLID,2,RGB(255,10,10));
pen3.CreatePen(PS_SOLID,2,RGB(100,200,100));
int a[11][2]={100,105,90,135,60,135,85,155,75,185,100,165,125,185,115,155,140,135,110,135,100,105};
dc.SelectObject(pen1);
dc.MoveTo (a[0][0],a[0][1]);
for(int i=0;i11;i++)
{
dc.LineTo (a[i][0],a[i][1]);
}
dc.TextOut (35,155,原图);//原图
int tx=120,ty=100;
dc.MoveTo (a[0][0]+tx,a[0][1]+ty);
for( i=0;i11;i++)
{
dc.LineTo (a[i][0]+tx,a[i][1]+ty);
}
dc.TextOut (270,270,平移);//平移
Sleep(5);
double sx=0.5,sy=0.5;
dc.MoveTo (a[0][0]*sx,a[0][1]*sy);
for( i=0;i11;i++)
{
dc.LineTo (a[i][0]*sx,a[i][1]*sy);
Sleep(5);
}
dc.TextOut (75,35,比例);//比例
int t;
dc.MoveTo (a[0][0]*cos(t/6)-a[0][1]*sin(t/6),//一个点
a[0][0]*sin(t/6)+a[0][1]*cos(t/6));
for( i=0;i11;i++)
{
dc.LineTo (a[i][0]*cos(t/6)-a[i][1]*sin(t/6),//一个点
a[i][0]*sin(t/6)+a[i][1]*cos(t/6));
}
dc.TextOut (160,104,旋转);//旋转
Sleep(5);
int m=0,b=200;
dc.MoveTo (a[0][0]*(1-m*m)/(1+m*m)+2*(a[0][1]-b)*m/(1+m*m),//一个点
a[0][0]*(2*m)/(1+m*m)+(a[0][1]-b)*(m*m-1)/(1+m*m)+b);
for( i=0;i11;i++)
{
dc.LineTo (a[i][0]*(1-m*m)/(1+m*m)+2*(a[i][1]-b)*m/(1+m*m),
a[i][0]*(2*m)/(1+m*m)+(a[i][1]-b)*(m*m-1)/(1+m*m)+b);
}
dc.TextOut (130,275,对称);//对称
Sleep(5);
dc.SelectObject(pen3);
double c=2,d=1.5,u=50;
dc.MoveTo (a[0][0]+c*a[0][1],a[0][1]-u);
for( i=0;i11;i++)
{
dc.LineTo (a[i][0]+c*a[i][1],a[i][1]-u);
}
dc.TextOut (450,80,沿X方向关于Y错切);//沿X方向关于Y错切
Sleep(5);
int s=170,h=200;
dc.MoveTo (a[0][0]+s,d*a[0][0]+a[0][1]-h);
for( i=0;i11;i++)
{
dc.LineTo (a[i][0]+s,d*a[i][0]+a[i][1]-h);
}
dc.TextOut (220,170,沿Y方向关于X错切);//沿Y方向关于X错切
Sleep(5);
dc.SelectObject(pen2);
dc.MoveTo (0,b);
dc.LineTo(400,100*m+b);
dc.TextOut (320,205,对称轴); //对称轴
Sleep(5);
pen1.DeleteObject();
pen2.DeleteObject();
pen3.DeleteObject();
dc.TextOut(450,200,二维几何变换);
dc.TextOut(4
您可能关注的文档
最近下载
- 电子倍增层背散射效应对增益及噪声的影响研究.pdf
- 弹簧模型-2023年高考物理动量常用模型模拟题精练(解析版).pdf VIP
- REF615使用操作说明书 (1).pdf
- (高清版)DB33 686-2019 机制纸板和卷烟纸单位产品能耗限额及计算方法.pdf VIP
- 7.3 世界上最大的黄土堆积区—黄土高原 第2课时(教学课件)-2025-2026学年八年级地理下册(人教版2024).pptx
- 深度解析(2026)《SFT 0074-2020耕地和林地破坏司法鉴定技术规范》.pptx VIP
- 2024年贵州省高考生物真题卷(含答案与解析)_7674.pdf VIP
- 弹簧模型-动量守恒的十种模型2025高考物理专项复习含答案.pdf VIP
- 市政协领导班子2024年民主生活会对照检查发言材料(四个带头).docx VIP
- 市政协副主席2024年民主生活会对照检查材料(四个带头).docx VIP
原创力文档

文档评论(0)