From 97c1246eea55c85c874689b301c5df02cbee576b Mon Sep 17 00:00:00 2001 From: juha Date: Wed, 17 Sep 2014 16:30:32 +0000 Subject: [PATCH] LCL: Add ArcTo function to TCanvas class. Issue #7230, patch from Howard Page-Clark git-svn-id: trunk@46246 - --- lcl/graphics.pp | 1 + lcl/include/canvas.inc | 9 +++++++++ 2 files changed, 10 insertions(+) diff --git a/lcl/graphics.pp b/lcl/graphics.pp index a12e983318..4f4809669f 100644 --- a/lcl/graphics.pp +++ b/lcl/graphics.pp @@ -1150,6 +1150,7 @@ type // extra drawing methods (there are more in the ancestor TFPCustomCanvas) procedure Arc(ALeft, ATop, ARight, ABottom, Angle16Deg, Angle16DegLength: Integer); virtual; {$IFDEF HasFPCanvas1}reintroduce;{$ENDIF} procedure Arc(ALeft, ATop, ARight, ABottom, SX, SY, EX, EY: Integer); virtual; {$IFDEF HasFPCanvas1}reintroduce;{$ENDIF} + procedure ArcTo(ALeft, ATop, ARight, ABottom, SX, SY, EX, EY: Integer); virtual; //As Arc(), but updates pen position procedure BrushCopy(ADestRect: TRect; ABitmap: TBitmap; ASourceRect: TRect; ATransparentColor: TColor); virtual; procedure Chord(x1, y1, x2, y2, diff --git a/lcl/include/canvas.inc b/lcl/include/canvas.inc index 5e1df6ee92..22c5acc162 100644 --- a/lcl/include/canvas.inc +++ b/lcl/include/canvas.inc @@ -670,6 +670,15 @@ begin Changed; end; +procedure TCanvas.ArcTo(ALeft, ATop, ARight, ABottom, SX, SY, EX, EY: Integer); +var + r: TRect; +begin + Arc(ALeft, ATop, ARight, ABottom, SX, SY, EX, EY); + r:=Rect(ALeft, ATop, ARight, ABottom); + MoveTo(RadialPoint(EccentricAngle(Point(EX, EY), r), r)); +end; + {------------------------------------------------------------------------------ Method: TCanvas.Arc Params: ALeft, ATop, ARight, ABottom, sx, sy, ex, ey