我在A3打印机画布上绘图。
是否可以复制画布的一部分并
在画布的另一部分绘制旋转(180度)的画?
谢谢!
最佳答案
就像Sertac已评论一样,请使用SetWorldTransform
:
procedure TForm1.Button1Click(Sender: TObject);
var
XForm: TXForm;
begin
if PrintDialog1.Execute then
with Printer do
begin
BeginDoc;
SetGraphicsMode(Canvas.Handle, GM_ADVANCED);
PrintTo(Canvas);
XForm.eM11 := Cos(DegToRad(180));
XForm.eM12 := Sin(DegToRad(180));
XForm.eM21 := -Sin(DegToRad(180));
XForm.eM22 := Cos(DegToRad(180));
XForm.eDx := PageWidth;
XForm.eDy := PageHeight;
SetWorldTransform(Canvas.Handle, XForm);
PrintTo(Canvas);
EndDoc;
end;
end;
procedure TForm1.PrintTo(ACanvas: TCanvas);
begin
with ACanvas do
begin
Font.Size := 180;
TextOut(0, 0, 'Test text');
Pen.Width := 40;
MoveTo(0, 0);
LineTo(3000, 3000);
end;
end;
关于delphi - 如何在D-7中绘制 Canvas 的旋转部分?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6910496/