diff --git a/AUTHORS b/AUTHORS index 60c3f32..5773ac7 100644 --- a/AUTHORS +++ b/AUTHORS @@ -14,6 +14,7 @@ Google Inc. Jeff R. Allen Maksim Kochkin +Michael Fogleman Rémy Oudompheng Roger Peppe Steven Edwards diff --git a/CONTRIBUTORS b/CONTRIBUTORS index ff50e43..7a1b0a2 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -29,6 +29,7 @@ Andrew Gerrand Jeff R. Allen Maksim Kochkin +Michael Fogleman Nigel Tao Rémy Oudompheng Rob Pike diff --git a/raster/stroke.go b/raster/stroke.go index 8d43797..bcc66b2 100644 --- a/raster/stroke.go +++ b/raster/stroke.go @@ -47,8 +47,8 @@ var RoundCapper Capper = CapperFunc(roundCapper) func roundCapper(p Adder, halfWidth fixed.Int26_6, pivot, n1 fixed.Point26_6) { // The cubic Bézier approximation to a circle involves the magic number - // (√2 - 1) * 4/3, which is approximately 141/256. - const k = 141 + // (√2 - 1) * 4/3, which is approximately 35/64. + const k = 35 e := pRot90CCW(n1) side := pivot.Add(e) start, end := pivot.Sub(n1), pivot.Add(n1) @@ -111,8 +111,8 @@ func addArc(p Adder, pivot, n0, n1 fixed.Point26_6) { // We approximate the arc by 0, 1, 2 or 3 45-degree quadratic segments plus // a final quadratic segment from s to n1. Each 45-degree segment has // control points {1, 0}, {1, tan(π/8)} and {1/√2, 1/√2} suitably scaled, - // rotated and translated. tan(π/8) is approximately 106/256. - const tpo8 = 106 + // rotated and translated. tan(π/8) is approximately 27/64. + const tpo8 = 27 var s fixed.Point26_6 // We determine which octant the angle between n0 and n1 is in via three // dot products. m0, m1 and m2 are n0 rotated clockwise by 45, 90 and 135