计算机图形学实验报告几何变换,计算机图形学实验报告几何变换.doc
計(jì)算機(jī)圖形學(xué)實(shí)驗(yàn)報(bào)告幾何變換
計(jì)算機(jī)圖形學(xué)實(shí)驗(yàn)報(bào)告
計(jì)算機(jī)圖形學(xué)實(shí)驗(yàn)報(bào)告姓 名徐沛華班級(jí)1011學(xué)號(hào)成績(jī)實(shí)驗(yàn)名稱(chēng)二維圖形的幾何變換實(shí)驗(yàn)?zāi)康膶?duì)平面圖形進(jìn)行平移、縮放、旋轉(zhuǎn)、對(duì)稱(chēng)
實(shí)驗(yàn)步驟算法分析:
圖形變換是指對(duì)圖形的幾何信息經(jīng)過(guò)幾何變換后產(chǎn)生新的圖形。圖形變換既可以看作坐標(biāo)系不動(dòng)而圖形變動(dòng),變動(dòng)后的圖形在坐標(biāo)系中的坐標(biāo)值發(fā)生變化;也可以看作圖形不動(dòng)而坐標(biāo)系變動(dòng),變動(dòng)后,該圖形在新的坐標(biāo)系下具有新的坐標(biāo)值。
設(shè)(x,y)為圖形原坐標(biāo)值,經(jīng)幾何變換后坐標(biāo)值變?yōu)?)。以下為四種常用的幾何變換公式。
(a) 平移變換:
平移變換在前面的任務(wù)中已經(jīng)用到過(guò),它的變換公式為:
(b) 旋轉(zhuǎn)變換:
繞原點(diǎn)旋轉(zhuǎn)的變換公式為:
(c) 放縮變換:
幾種變換可以組合在一起形成復(fù)合變換。例如平移變換與旋轉(zhuǎn)變換組合得到:
(d) 相對(duì)點(diǎn)的旋轉(zhuǎn)變換:
ii、算法程序:
void CZhouView::pingyi()
{
CClientDC dc(this);
dc.MoveTo(m_nPoint1.x,m_nPoint1.y);
dc.LineTo(m_nPoint2.x,m_nPoint2.y);
dc.MoveTo(m_nPoint1.x+100,m_nPoint1.y+100);
dc.LineTo(m_nPoint2.x+100,m_nPoint2.y+100);
}
void CZhouView::xuanzhuan()
{
CClientDC dc(this);
dc.MoveTo(m_nPoint1.x,m_nPoint1.y);
dc.LineTo(m_nPoint2.x,m_nPoint2.y);
dc.MoveTo((m_nPoint1.x*cos(0.5))-(m_nPoint1.y*sin(0.5)),(m_nPoint1.x*sin(0.5))+(m_nPoint1.y*cos(0.5)));
dc.LineTo((m_nPoint2.x*cos(0.5))-(m_nPoint2.y*sin(0.5)),(m_nPoint2.x*sin(0.5))+(m_nPoint2.y*cos(0.5)));
}
void CZhouView::bili()
{
CClientDC dc(this);
dc.MoveTo(m_nPoint1.x,m_nPoint1.y);
dc.LineTo(m_nPoint2.x,m_nPoint2.y);
dc.MoveTo(m_nPoint1.x*2,m_nPoint1.y*2);
dc.LineTo(m_nPoint2.x*2,m_nPoint2.y*2);
}
void CZhouView::XCQ()
{
CClientDC dc(this);
dc.MoveTo(m_nPoint1.x,m_nPoint1.y);
dc.LineTo(m_nPoint2.x,m_nPoint2.y);
dc.MoveTo(m_nPoint1.x,m_nPoint1.y);
dc.LineTo(m_nPoint2.x+100,m_nPoint2.y);
}
void CZhouView::DC()
{
CClientDC dc(this);
dc.MoveTo(m_nPoint1.x,m_nPoint1.y);
dc.LineTo(m_nPoint2.x,m_nPoint2.y);
dc.MoveTo(m_nPoint1.y,m_nPoint1.x);
dc.LineTo(m_nPoint2.y,m_nPoint2.x);
}
void CZhouView::YCQ()
{
CClientDC dc(this);
dc.MoveTo(m_nPoint1.x,m_nPoint1.y);
dc.LineTo(m_nPoint2.x,m_nPoint2.y);
dc.MoveTo(m_nPoint1.x,m_nPoint1.y);
dc.LineTo(m_nPoint2.x,m_nPoint2.y+100);
}
//OnLButtonUp(UINT nFlags, CPoint point)
case 8:
pingyi();
break;
case 9:
xuanzhuan();
break;
case 10:
bili();
break;
case 11:
XCQ();
break;
case 12:
YCQ();
break;
case 13:
DC();
break;
dc.MoveTo(m_nPo
總結(jié)
以上是生活随笔為你收集整理的计算机图形学实验报告几何变换,计算机图形学实验报告几何变换.doc的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: cpci检索太慢_了解CPCI检索,对自
- 下一篇: U盘文件夹为空恢复方法,恢复U盘的空白文