计算机图形学实验报告-几何变换.doc
文本预览下载声明
班 级 R数学111
大连交通大学 姓 名
实 验 报 告 同 组 人
课程名称: 计算机图形学 成 绩
实验名称: 几何变换 指导老师
实验目的、要求:
通过上机实践,更好地掌握二维平移、旋转、缩放等几何变换
实验仪器:
PC机、VC6.0
实验步骤、内容:
菜单
消息响应函数
void CGeotranView::Onyuantu()
{
// 原图,画三角形
CDC *pDC=GetDC();
pDC-MoveTo(100,100);
pDC-LineTo(200,50);
pDC-LineTo(200,150);
pDC-LineTo(100,100);
ReleaseDC(pDC);
}
void CGeotranView::Ontranslation()
{
// 平移 tx=50,ty=60
CDC *pDC=GetDC();
int tx=50,ty=60;
pDC-MoveTo(100+tx,100+ty);
pDC-LineTo(200+tx,50+ty);
pDC-LineTo(200+tx,150+ty);
pDC-LineTo(100+tx,100+ty);
ReleaseDC(pDC);
}
void CGeotranView::Onrotation()
{
// 旋转, 角度sita=30度
CDC *pDC=GetDC();
double sita=30;
double hudu=sita*3.14159/180;
pDC-MoveTo(int(100*cos(hudu)-100*sin(hudu)),int(100*sin(hudu)+100*cos(hudu)));
pDC-LineTo(int(200*cos(hudu)-50*sin(hudu)),int(200*sin(hudu)+50*cos(hudu)));
pDC-LineTo(int(200*cos(hudu)-150*sin(hudu)),int(200*sin(hudu)+150*cos(hudu)));
pDC-LineTo(int(100*cos(hudu)-100*sin(hudu)),int(100*sin(hudu)+100*cos(hudu)));
ReleaseDC(pDC);
}
void CGeotranView::Onscaling()
{
// 缩放 sx=2,sy=3
int sx=2,sy=3;
CDC *pDC=GetDC();
pDC-MoveTo(100*sx,100*sy);
pDC-LineTo(200*sx,50*sy);
pDC-LineTo(200*sx,150*sy);
pDC-LineTo(100*sx,100*sy);
ReleaseDC(pDC);
}
运行结果
实验心得:
2010年12月20日
教师评语:
年 月 日
显示全部