Re: Strange behaviour on arc drawing with big line width

Bryce Harrington <[email protected]>
Newsgroups gmane.comp.lib.cairo
Message-ID <[email protected]>
Chris posted a patch to the bug tracker for this issue:

  https://bugs.freedesktop.org/show_bug.cgi?id=84115

Bryce

On Sun, Sep 21, 2014 at 01:34:23PM +0200, Tobias Hoffmann wrote:
> Hi,
> 
> I tried a few things, and expected the correct result to be this:
>         cr.arc(200, 200, 200, 0*(math.pi/180), -60*(math.pi/180))
>         cr.line_to(200,200)
>         cr.close_path()
>         cr.fill()
> 
> but actually PostScript (ghostscript's interpretation of it) will
> not draw a horizontal line at the beginning, either:
>  $ gs
>  GS> 200 setlinewidth
>  GS> 200 500 100 0 60 arcn stroke
> 
> (Note: I've used arcn instead of arc and 60 instead of -60 because
> the postscript coordinate system has its Y-axis going upwards,
> unlike pygtk.)
> 
> Also, when using LINE_CAP_SQUARE (and a smaller line-width), I can
> see that cairo and ghostscript disagrees on the tangent-direction at
> the endpoints of the arc...
> 
> What cairo seems to do, is use different tangent directions for the
> inner and the outer part of the stroked arc, but (AFAICS) *only at
> the beginning* of the arc -- the end of it is always unaffected!
> That seems strange to me.
> But I'm not sure, which tangent is actually the 'correct' one.
> 
> If you want a perfect horizontal line, you should not stroke the
> arc, but fill it (see my first code snippet).
> 
> Maybe someone with better knowledge of how cairo actually draws
> (tesselates?) these arcs wants to explain the current behavior?
> 
>   Tobias
> 
> 
> 
> On 20/09/14 02:04, Maurizio Berti wrote:
> >Hello,
> >I'm writing a cairo python script, which loads graphics and
> >animations from a custom file to create "fancy" (and unuseful)
> >graphics like those seen in videogames and scifi movies.
> >I have a problem with arcs, though: I need to be able to draw them
> >interactively, with user given coords, start/end and line width.
> >When I try to draw arcs with a certain line width I have a strange
> >behaviour: the beginning of the line is not straight as it should
> >be, you can see an example of it here:
> >http://jidesk.net/sypy/strangearc2.jpg
> >
> >Here is the code I used for this test:
> >https://bpaste.net/show/e1f3b8d1f842
> >
> >I'm using cairo 1.12.16 from the official Gentoo portage (the
> >problem still remains with the latest -r3 version in the portage),
> >with pycairo 1.10.0-r4, also latest stable from the portage.
> >
> >CC'ing to [email protected] <mailto:[email protected]> who
> >confirmed the issue on #cairo using cairo
> >1.13.0~20140204-0ubuntu1, but was not present using cairo
> >1.12.16-0ubuntu1.1~bryce~precise6, with little different results:
> >http://jidesk.net/sypy/strangearc-bryce.png
> >
> >To draw single and simple "filled" arcs I could use lines and
> >curves, but that would affect the performances of my script (and
> >would require a lot of complex calculations), so I'm here to ask
> >if someone can confirm that this is a bug indeed.
> >
> >Thanks,
> >Maurizio
> >
> >-- 
> >È difficile avere una convinzione precisa quando si parla delle
> >ragioni del cuore. - "Sostiene Pereira", Antonio Tabucchi
> >http://www.jidesk.net
> >
> >
> 
-- 
cairo mailing list
[email protected]
http://lists.cairographics.org/mailman/listinfo/cairo
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.