[cairo] Strange behaviour on arc drawing with big line width

Maurizio Berti maurizio.berti at gmail.com
Wed Sep 24 17:04:26 PDT 2014


Thank you all for your efforts, I hope I will able to try it as soon as
possible, even if unfortunally on my system I can't afford to use cairo
from git.
To answer to Tobias, I could draw lines and fill the arc, but that's not
what I'd need, since I have to be able to use arcs with line width smaller
than the radius, so I should create two arcs and then fill, but that would
require me 3 further commands from a python script that has to be as light
and fast as possible while drawing (I need 50-60fps refresh rate and try to
keep cpu usage low).

Thank you again,
Maurizio

2014-09-23 0:10 GMT+02:00 Bryce Harrington <bryce at osg.samsung.com>:

> 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 bryce at osg.samsung.com <mailto:bryce at osg.samsung.com> 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
> > >
> > >
> >
>



-- 
È difficile avere una convinzione precisa quando si parla delle ragioni del
cuore. - "Sostiene Pereira", Antonio Tabucchi
http://www.jidesk.net
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.cairographics.org/archives/cairo/attachments/20140925/348db876/attachment.html>


More information about the cairo mailing list