dc.DrawCircle is not very circular

Hi all

I sent this message yesterday, but for some reason I did not get a copy
emailed back to me. I can see it on the archive, so it did get through, but
maybe not all of you received it.

Anyway, I need to add something to it, but as I do not have an existing
message to reply to, I will have to start a new thread. Sorry about that.

== Original message ==

I need to draw some flowcharts, using BPMN symbols (Business Process
Management Notation).

I started looking at OGL, but I am not sure if it suits my needs. I could
not find any documentation, other than reading the source and looking at the
demo. In particular, I could not find a way to customise the line linking
two objects. OGL always seems to draw a straight line, but sometimes,
particularly when looping backwards, you need a line comprising various
straight edges and right angles. I could not find a way to do that.

Therefore I started looking at rolling my own. I have only got as far as
creating the symbols so far. It is quite easy to do, but I am disappointed
at the quality. See the attached screen shot bpmn3.png. Is there any way to
draw a more perfect circle? Incidentally OGL uses the same method to draw
its circles, and the result is equally poor.

Platforms are 2.8.4.0 on MSW, and 2.8.0.1 on gtk2.

I have another question, related to the actual creation of the screen shot.

I used some code that Andrea posted recently (thanks, Andrea) to create the
png. I use object.ScreenRect to get the co-ordinates. If the position of the
object is hard-coded, it works fine, but if it is positioned using sizers,
it does not pick up the correct area. See the attached examples.

bpmn3.py creates two objects, m1 and m2, using absolute positioning. I can
grab a screen shot of m1 or m2, and they both come out correctly.

bpmn4.py also creates two objects, m1 and m2, using sizers. I can grab a
screen shot of m1 correctly, but m2 grabs the wrong portion of the screen.

Thanks

Frank Millman

== Addition to message ==

Today I upgraded to 2.8.7.1, and played with the new GraphicsContext, and I
get much better results.

Attached is a revised program, and a revised screen shot. As you can see,
the circle is actually fairly circular :slight_smile:

I did not grasp the concept of a 'path'. The attached program draws my
design twice, one just using a GraphicsContext, the other using a
GraphicsPath. They both work, but I assume that the path gives some extra
functionality. Please can someone explain in a bit more detail.

Thanks

Frank

bpmn5.py (4.34 KB)

bpmn5.png