国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
Windows GDI和GDI+編程實(shí)例剖析(4)
持久的路徑對象

  在GDI中,路徑隸屬于一個(gè)設(shè)備上下文,一旦設(shè)備環(huán)境指針超過它的生存期,路徑也會(huì)被刪除。利用GDI+,可以創(chuàng)建并維護(hù)與Graphics對象分開的GraphicsPath 對象,它不依賴于Graphics對象的生存期。

  變形和矩陣對象

  GDI+提供了Matrix對象,它是一種可以使變形(旋轉(zhuǎn)、平移、縮放等) 簡易靈活的強(qiáng)大工具,Matrix對象需與要被變形的對象聯(lián)合使用。對于GraphicsPath類,我們可以使用其成員函數(shù)Transform接收Matrix參數(shù)用于變形。

void CGdiexampleDlg::OnTransformationMatrix()
{
 // TODO: Add your command handler code here
 CClientDC dc(this);
 //創(chuàng)建Graphics對象
 Graphics graphics(dc);
 GraphicsPath path;
 path.AddRectangle(Rect(250, 20, 70, 70));
 graphics.DrawPath(&Pen(Color::Black, 1), &path); // 在應(yīng)用變形矩陣之前繪制矩形
 // 路徑變形
 Matrix matrix1, matrix2;

 matrix1.Rotate(45.0f); //旋轉(zhuǎn)順時(shí)針45度
 path.Transform(&matrix1); //應(yīng)用變形
 graphics.DrawPath(&Pen(Color::Red, 3), &path);

 matrix2.Scale(1.0f, 0.5f); //轉(zhuǎn)化成為平行四邊形法則
 path.Transform(&matrix2); //應(yīng)用變形
 graphics.DrawPath(&Pen(Color::Blue, 3), &path);
}

  圖5演示了正方形經(jīng)過旋轉(zhuǎn)和拉伸之后的效果:黑色的為原始圖形,紅色的為旋轉(zhuǎn)45度之后的圖形,藍(lán)色的為經(jīng)過拉伸為平行四邊形后的圖形。


圖5 GDI+變形和矩陣對象

  可伸縮區(qū)域

  GDI+通過對區(qū)域(Region)的支持極大地?cái)U(kuò)展了GDI。在GDI 中,區(qū)域存儲(chǔ)在設(shè)備坐標(biāo)中,可應(yīng)用于區(qū)域的唯一變形是平移。但是在GDI +中,區(qū)域存儲(chǔ)在全局坐標(biāo)(世界坐標(biāo))中,可對區(qū)域利用變形矩陣進(jìn)行變形(旋轉(zhuǎn)、平移、縮放等)。

void CGdiexampleDlg::OnScalableRegion()
{
 // TODO: Add your command handler code here
 CClientDC dc(this);
 //創(chuàng)建Graphics對象
 Graphics graphics(dc);
 //創(chuàng)建GraphicsPath
 GraphicsPath path;
 path.AddLine(100, 100, 150, 150);
 path.AddLine(50, 150, 150, 150);
 path.AddLine(50, 150, 100, 100);
 //創(chuàng)建Region
 Region region(&path);
 //填充區(qū)域
 graphics.FillRegion(&SolidBrush(Color::Blue), &region);
 //區(qū)域變形
 Matrix matrix;
 matrix.Rotate(10.0f); //旋轉(zhuǎn)順時(shí)針20度
 matrix.Scale(1.0f, 0.3f); //拉伸
 region.Transform(&matrix); //應(yīng)用變形
 //填充變形后的區(qū)域
 graphics.FillRegion(&SolidBrush(Color::Green), &region);
}

  上述程序中以藍(lán)色填充一個(gè)三角形區(qū)域,接著將此區(qū)域旋轉(zhuǎn)和拉伸,再次顯示,其效果如圖6。


圖6 GDI+區(qū)域變形

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
一些關(guān)于GDI+的文字——新增功能
Windows GDI與GDI+
什么是GDI+ ?
基于Windows GDI 的幾何線條處理
Visual C MFC 中使用 GDI
Davidwu : GDI SDK參考 - (翻譯) [3]
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服