diff --git a/internal/stroke/stroke.go b/internal/stroke/stroke.go index 07b78347..fda42dbd 100644 --- a/internal/stroke/stroke.go +++ b/internal/stroke/stroke.go @@ -696,7 +696,7 @@ func ArcTransform(p, f1, f2 f32.Point, angle float32, segments int) f32.Affine2D f := dist(f1, c) b := math.Sqrt(a*a - f*f) - var rx, ry, alpha, start float64 + var rx, ry, alpha float64 switch { case a > b: rx = a @@ -728,12 +728,6 @@ func ArcTransform(p, f1, f2 f32.Point, angle float32, segments int) f32.Affine2D } } - start = math.Acos(float64(p.X-c.X) / dist(c, p)) - if c.Y > p.Y { - start = -start - } - start -= alpha - var ( θ = angle / float32(segments) ref f32.Affine2D // transform from absolute frame to ellipse-based one diff --git a/op/clip/clip.go b/op/clip/clip.go index ac4c28a5..f9d094ee 100644 --- a/op/clip/clip.go +++ b/op/clip/clip.go @@ -27,15 +27,13 @@ type Op struct { func (p Op) Add(o *op.Ops) { str := p.stroke - dashes := p.dashes path := p.path outline := p.outline - approx := str.Width > 0 && !(dashes == DashSpec{} && str.Miter == 0 && str.Join == RoundJoin && str.Cap == RoundCap) + approx := str.Width > 0 && !(p.dashes == DashSpec{} && str.Miter == 0 && str.Join == RoundJoin && str.Cap == RoundCap) if approx { // If the stroke is not natively supported by the compute renderer, construct a filled path // that approximates it. path = p.approximateStroke(o) - dashes = DashSpec{} str = StrokeStyle{} outline = true }