生成Graphics的兩種方法: l 通過事件引數Eventargs生成; l 通過控制元件的CreateGraphics方法生成;
|
繪製的兩種方法: l 控制元件的paint事件; l 重寫Control類的OnPaint方法; |
Graphics是否需要Dispose釋放資源?(也可以使用using釋放資源)
1、由事件引數EventArgs建立的Graphics不需要釋放資源,如e.Graphics;
2、由控制元件本身建立的Graphics需要釋放資源,如this.CreateGraphics;
圖形變換/變形的分類:
1、線性變形:旋轉、縮放和翻轉等簡單的變形,都是線性變形;
2、仿射變形:線性變形後,再進行平移變形,就叫做仿射變形;
3、剪下變形:根據一個剪下因數對物件進行的扭曲變形;
進行變換的方式
1、通過Graphics的Transform方法進行變換;
2、通過Matrix類進行變換,將Matrix賦值給Graphics的Transform屬性即可;
3、對Path和Region進行區域性變換;
變換方法測試截圖:
關於Matrix類的幾點說明:
- 最右邊一列的元素始終不變(0,0,1)
- 左上角四個元素值,負責縮放變換、旋轉變換;
- 左上角四個元素中,主對角線上的兩個元素,分別負責X軸縮放和Y軸縮放;
- 下面兩個元素負責平移變換,左邊的負責X平移,右邊的元素負責Y平移;
GDI+中有繪圖表面的概念,Graphics由哪個控制元件(或者其事件引數,或者回撥方法)建立,那麼繪圖就會在該控制元件表面進行,而不會繪製到別的控制元件表面上;
Rectangle和RectangleF:左邊是整數int為引數的矩形,右邊是浮點數float為引數的矩形
Point和PointF:左邊是整數int為引數的點,右邊是浮點數float為引數的點;
雙快取的設定程式碼:
this.SetStyle(ControlStyles.UserPaint,true);
this.SetStyle(ControlStyles.AllPaintingInWmPaint, true);
this.SetStyle(ControlStyles.OptimizedDoubleBuffer, true);
測試截圖:
測試截圖
英語生詞本:
thumbnail 英 /ˈθʌmneɪl/ 美 /ˈθʌmneɪl/ n. 拇指指甲;極小的東西;短文;縮圖
adj. 極小的,極短的
palette 英 /ˈpælət/ 美 /ˈpælət/ n. 調色盤;一組顏色;(計算機程式中的)選項板;
intersect 英 /ˌɪntəˈsekt/ 美 /ˌɪntərˈsekt/ v. 相交,交叉;橫穿,橫斷;交集
...............................待續......................................