unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs;type TForm1 = class(TForm) procedure FormPaint(Sender: TObject); end;var Form1: TForm1;implementation{$R *.dfm}uses GDIPOBJ, GDIPAPI;procedure TForm1.FormPaint(Sender: TObject);var g: TGPGraphics; p: TGPPen; rect: TGPRect; pt: TGPPointF; Matrix: TGPMatrix;begin g := TGPGraphics.Create(Canvas.Handle); p := TGPPen.Create(MakeColor(255,255,0,0),0); rect := MakeRect(30,30,100,100); {譬如准备在上面矩形的中心点旋转} pt := MakePoint(rect.X + rect.Width / 2, rect.Y + rect.Height /2); Matrix := TGPMatrix.Create; Matrix.RotateAt(45, pt); {以指定的 pt 为中心, 转 45° 角} {先画个不旋转的} g.DrawRectangle(p, rect); {再画个旋转的} p.SetColor(aclBlue); g.SetTransform(Matrix); {关键代码} g.DrawRectangle(p, rect); g.ResetTransform; {关键代码, 不恢复后面就都旋转了} Matrix.Free; p.Free; g.Free;end;end.
联系客服