Jump to navigation

Poupou's Corner of the Web

Looking for perfect security? Try a wireless brick.
Otherwise you may find some unperfect stuff here...


The World is Flat, huh I meant Fat

So after fixing some corlib bugs (i.e. exchanging lots of old known bugs for some? brand new and unknown ones) I'm now doing a little hacking in libgdiplus/System.Drawing. Some of the missing stuff is quite complex (e.g. boolean operations on non-rectangular regions), but I was more lucky when looking to implement the missing function GdiFlattenPath because Sodipodi's libnr library had exactly what I needed :-).

A nice thing about hacking in System.Drawing/Libgdiplus is that screenshots are so much easier than for security

The screenshots shows my sample application on both Windows (MS runtime) and Linux (Mono) using a complex path (which includes a pie, a rectangle and a polygon). The wide black lines are the original path while the smaller red lines are the flattened version of the same path (with an applied translation matrix). You can see that even if we need more points of the original path (19 versus 16, IIRC our pie needs more points) the flattened result requires less points (33 versus 50) for a similar flatness. This should hit SVN HEAD soon...

Side note: Ok, this is really bad. Makes me wonder how many people still thinks the world is flat ? anyway in case you find one I suggest you use this algorithm to demonstrate how nice a circle made of flat lines can be ;-)

1/26/2006 22:56:07 | Comments

The views expressed on this website/weblog are mine alone and do not necessarily reflect the views of my employer.