您的位置:首页 > 其它

GDI+ 学习记录(25) 变换 - Transform

2010-12-08 20:10 281 查看


//比例变化
var
g: TGPGraphics;
p: TGPPen;
rect: TGPRect;
begin
g := TGPGraphics.Create(Canvas.Handle);
p := TGPPen.Create(MakeColor(255,255,0,0),0);
rect := MakeRect(10,10,100,100);

g.DrawRectangle(p, rect); {原始}

g.ScaleTransform(2, 0.5); {横向放大、纵向缩小}
p.SetColor(aclBlue);      {变个颜色看清楚}
g.DrawRectangle(p, rect); {重绘}
g.ResetTransform;         {恢复变化, 不然下一个变化将基于现在的状态}

p.Free;
g.Free;
end;




var
g:TGPGraphics;
p:TGPPen;
rect:TGPRect;
begin
g:=TGPGraphics.Create(Canvas.Handle);
g.Clear(aclWhite);
p:=TGPPen.Create(aclRed);
rect:=MakeRect(10,60,100,100);

g.DrawRectangle(p,rect);
g.RotateTransform(-28);  //旋转,正值顺时针旋转,负值逆时针旋转
p.SetColor(aclBlue);

g.DrawRectangle(p,rect);
g.ResetTransform;

p.Free;
g.Free;
end;




//位置变化(移动)
var
g:TGPGraphics;
p:TGPPen;
rect:TGPRect;
begin
g:=TGPGraphics.Create(Canvas.Handle);
g.Clear(aclWhite);
p:=TGPPen.Create(aclRed,2);
rect:=MakeRect(10,10,100,100);

g.DrawRectangle(p,rect);
g.TranslateTransform(111,66); //移动
p.SetColor(aclBlue);
g.DrawRectangle(p,rect);

p.Free;
g.Free;
end;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: