再学 GDI+[79]: 区域(8) - Transform - 区域的 Matrix 变换
生活随笔
收集整理的這篇文章主要介紹了
再学 GDI+[79]: 区域(8) - Transform - 区域的 Matrix 变换
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
矩陣變換(Matrix)功能很強大, 這里只是旋轉(zhuǎn)了一下.
本例效果圖:
代碼文件:
unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, StdCtrls, ComCtrls;typeTForm1 = class(TForm)TrackBar1: TTrackBar;procedure FormPaint(Sender: TObject);procedure FormCreate(Sender: TObject);procedure TrackBar1Change(Sender: TObject);end;varForm1: TForm1;implementation{$R *.dfm}uses GDIPOBJ, GDIPAPI;procedure TForm1.FormCreate(Sender: TObject); beginTrackBar1.Min := -45;TrackBar1.Max := 45;DoubleBuffered := True; end;procedure TForm1.FormPaint(Sender: TObject); varg: TGPGraphics;b: TGPBrush;rgn: TGPRegion;Matrix: TGPMatrix; beging := TGPGraphics.Create(Canvas.Handle);b := TGPHatchBrush.Create(HatchStyleMin, aclSilver, aclChocolate);rgn := TGPRegion.Create(MakeRect(40, 40, ClientWidth-80, ClientHeight-100));Matrix := TGPMatrix.Create;Matrix.Rotate(TrackBar1.Position);rgn.Transform(Matrix);g.FillRegion(b, rgn);Matrix.Free;rgn.Free;b.Free;g.Free; end;procedure TForm1.TrackBar1Change(Sender: TObject); beginRepaint; end;end. 窗體文件:
object Form1: TForm1Left = 0Top = 0Caption = 'Form1'ClientHeight = 174ClientWidth = 197Color = clBtnFaceFont.Charset = DEFAULT_CHARSETFont.Color = clWindowTextFont.Height = -11Font.Name = 'Tahoma'Font.Style = []OldCreateOrder = FalsePosition = poDesktopCenterOnCreate = FormCreateOnPaint = FormPaintPixelsPerInch = 96TextHeight = 13object TrackBar1: TTrackBarLeft = 0Top = 151Width = 193Height = 23ShowSelRange = FalseTabOrder = 0OnChange = TrackBar1Changeend end
本例效果圖:
代碼文件:
unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, StdCtrls, ComCtrls;typeTForm1 = class(TForm)TrackBar1: TTrackBar;procedure FormPaint(Sender: TObject);procedure FormCreate(Sender: TObject);procedure TrackBar1Change(Sender: TObject);end;varForm1: TForm1;implementation{$R *.dfm}uses GDIPOBJ, GDIPAPI;procedure TForm1.FormCreate(Sender: TObject); beginTrackBar1.Min := -45;TrackBar1.Max := 45;DoubleBuffered := True; end;procedure TForm1.FormPaint(Sender: TObject); varg: TGPGraphics;b: TGPBrush;rgn: TGPRegion;Matrix: TGPMatrix; beging := TGPGraphics.Create(Canvas.Handle);b := TGPHatchBrush.Create(HatchStyleMin, aclSilver, aclChocolate);rgn := TGPRegion.Create(MakeRect(40, 40, ClientWidth-80, ClientHeight-100));Matrix := TGPMatrix.Create;Matrix.Rotate(TrackBar1.Position);rgn.Transform(Matrix);g.FillRegion(b, rgn);Matrix.Free;rgn.Free;b.Free;g.Free; end;procedure TForm1.TrackBar1Change(Sender: TObject); beginRepaint; end;end. 窗體文件:
object Form1: TForm1Left = 0Top = 0Caption = 'Form1'ClientHeight = 174ClientWidth = 197Color = clBtnFaceFont.Charset = DEFAULT_CHARSETFont.Color = clWindowTextFont.Height = -11Font.Name = 'Tahoma'Font.Style = []OldCreateOrder = FalsePosition = poDesktopCenterOnCreate = FormCreateOnPaint = FormPaintPixelsPerInch = 96TextHeight = 13object TrackBar1: TTrackBarLeft = 0Top = 151Width = 193Height = 23ShowSelRange = FalseTabOrder = 0OnChange = TrackBar1Changeend end
轉(zhuǎn)載于:https://www.cnblogs.com/del/archive/2008/06/30/1232732.html
總結(jié)
以上是生活随笔為你收集整理的再学 GDI+[79]: 区域(8) - Transform - 区域的 Matrix 变换的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: (转)几种流行的JS框架的选择
- 下一篇: LINQ从方法中返回查询