[cairo] Clipping and stroking
Carl Worth
cworth at cworth.org
Fri Apr 29 18:17:00 PDT 2005
On Fri, 29 Apr 2005 18:06:35 -0700, Bill Spitzak wrote:
> As somebody who has made this mistake before, I'll have to be the first
> to point out that this does not return the correct surrounding
> rectangle, for instance if x=1.5 and width=2. The correct answer is:
>
> width = ceil(x+width)-floor(x);
> x = floor(x);
> height = ceil(y+height)-floor(y);
> y = floor(y);
Thanks for catching me, Bill.
I knew there was a gotcha in there, (and I knew I could get the right
answer by doing the rounding on coordinates and only converting to
width/height at the end). I botched it by only checking the direct
rounding of width/height near integers for x and width, (rather than
near half-integers).
> Therefore it may make sense to return the extents as coordinates so this
> mistake is less likely.
Perhaps. Would we then also want to change cairo_rectangle to take a
pair of coordinates? (Which, admittedly, would feel somewhat awkward
to me).
-Carl
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://lists.freedesktop.org/archives/cairo/attachments/20050429/4e05c325/attachment.pgp
More information about the cairo
mailing list