# [whatwg] Canvas arc

Ian Hickson ian at hixie.ch
Thu Jan 31 16:35:06 PST 2008

```On Tue, 3 Jul 2007, Philip Taylor wrote:
>
> For the 'arc' function:
>
> What if startAngle = endAngle?

Now defined as zero length arc.

> What if endAngle > 2π + startAngle? (The endAngle = 2π + startAngle case
> isn't interesting since floating-point imprecision means it will never
> occur.)

According to the spec, nothing special happens. The points are defined as
being on the circle, so 3pi = 1pi, as far as where the point is.
Clarified, though.

> So, for FF/Safari: When startAngle -> endAngle is in the opposite
> direction to the (anti)clockwise flag, the two angles are treated modulo
> 2π and the arc is drawn between them in the appropriate direction. When
> it's the same direction as the (anti)clockwise flag, Safari extends the
> path all the way from startAngle to endAngle (going round the whole
> circle multiple times if necessary), and Firefox does the same except it
> skips all but the first full going-round-the-whole-circle bit (so it
> goes round 1 <= n < 2 times, if abs(startAngle-endAngle) > 2π).
>
> It seems sensible to adopt either Firefox's or Safari's approach (which
> differ only in the amount of overdraw). It's probably easier to use
> Firefox's, so then Safari would just have to mod the angles a little
> before drawing them, because I can't see any other reason to choose one
> approach over the other, and I can't see any reason to choose a totally
> different approach.

Well, having the arc overlap itself seems dumb... :-)

> Talking about arcs is confusing when the arc is more than a full
> circle and wraps around itself and isn't really a mathematical arc any
> more, so I think it's necessary to not define the operation in terms
> of arcs.

That's another reason not to do this. :-)

--
Ian Hickson               U+1047E                )\._.,--....,'``.    fL
http://ln.hixie.ch/       U+263A                /,   _.. \   _\  ;`._ ,.
Things that are impossible just take longer.   `._.-(,_..'--(,_..'`-.;.'
```

More information about the whatwg mailing list