From 9b5004d6b989050fb977c30c99fe049ff881ede1 Mon Sep 17 00:00:00 2001 From: Thomas Friedel Date: Tue, 6 Feb 2018 11:33:20 +0100 Subject: [PATCH] fixed a bug with anticlockwise arcs --- paths.go | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/paths.go b/paths.go index 9752caa..fe998a5 100644 --- a/paths.go +++ b/paths.go @@ -95,9 +95,16 @@ func (cv *Canvas) Arc(x, y, radius, startAngle, endAngle float32, anticlockwise if step > 0.8 { step = 0.8 } - for a := startAngle; a < endAngle; a += step { - s, c := fmath.Sincos(a) - cv.LineTo(x+radius*c, y+radius*s) + if anticlockwise { + for a := startAngle; a > endAngle; a -= step { + s, c := fmath.Sincos(a) + cv.LineTo(x+radius*c, y+radius*s) + } + } else { + for a := startAngle; a < endAngle; a += step { + s, c := fmath.Sincos(a) + cv.LineTo(x+radius*c, y+radius*s) + } } s, c := fmath.Sincos(endAngle) cv.LineTo(x+radius*c, y+radius*s)