- From: Justin Novosad <junov@google.com>
- Date: Mon, 17 Mar 2014 10:49:54 -0400
- To: Ian Hickson <ian@hixie.ch>
- Cc: WHATWG List <whatwg@whatwg.org>
On Fri, Mar 14, 2014 at 4:50 PM, Ian Hickson <ian@hixie.ch> wrote: > On Fri, 7 Feb 2014, Justin Novosad wrote: > > > > > > > > Current text: If the point (x0, y0) is equal to the point (x1, y1), > > > > or if the point (x1, y1) is equal to the point (x2, y2), or if both > > > > radiusX and radiusY are zero, then the method must add the point > > > > (x1, y1) to the subpath, and connect that point to the previous > > > > point (x0, y0) by a straight line. > > > > With arcTo, the first point (x0, y0) may have been added to the current > > subpath using a different CTM. So to bring it into the local space of > > the current primitive, we need an invertible CTM. > > What I don't understand is why you can't draw the curve in the transformed > space instead of the 1:1 coordinate space. You have to transform it > eventually, right? And the points will end up simply transformed. So you > can easily compare the points in the transformed space. All the transforms > are affine, so what's a straight line isn't impacted. Can't you just draw > the transformed arc instead of first drawing the circular arc and then > transforming it? > Maybe what I'm saying is obviously dumb for some reason, but I'm not > understanding why, if so... (not that I'm a graphics guy, obviously. Hmmm, I gave this a bit more thought... To apply the construction algorithm in transformed space, the ellipse parameters (radiusX, radiusY, rotation) would have to be transformed. Transforming the parameters would be intractable under a projective transform (e.g. perspective), but since we are limitted to affine transforms, it can be done. Now, in the case of a non-invertible CTM, we would end up with radiusX or radiusY or both equal to zero. And what happens when you have that? Your arcTo just turned into lineTo(x1, y1). Tada! > > > -- > Ian Hickson U+1047E )\._.,--....,'``. fL > http://ln.hixie.ch/ U+263A /, _.. \ _\ ;`._ ,. > Things that are impossible just take longer. `._.-(,_..'--(,_..'`-.;.' >
Received on Monday, 17 March 2014 14:50:19 UTC