[cairo] Cairo lines disappear in a certain scale range

robert9reen at yahoo.com robert9reen at yahoo.com
Thu Apr 2 00:02:09 PDT 2009


Thanks Joonas! In fact, looking at the Cairo DLL file itself, it turns out that Cairo uses GDI32's drawing functions internally (LineTo, PolyBezier, etc.) and this probably (and unfortunately) means that Cairo relies on Windows GDI to perform the actual drawing -- Cairo is not a device interface after all you may say. Consequently, Cairo for Windows is stuck with GDI's limitations -- I'm looking at it from a personal perspective; Cairo IS definitely the outcome of a great effort.

However, what made me look for an alternate graphics library for Win32 in the first place was the fact that GDI's user space coordinate system uses 32-bit integers (on Windows 32-bit) -- which could at most represent 16 km2 approx. with 1/1000 mm precision. The double (64-bit) user coordinate system offered by Cairo gave me hope. But now that I'm aware of these user-to-device mapping limitations (for understandable reasons) Cairo's no more an advantage.

In fact, I (too) have a dream :) I would like to build a vector drawing system which could show the map of something as big as our planet for example (with much less details of course for practical reasons ;-) The entire map would fit on my screen when I'm zoomed out to max., then I would be able to zoom in progressively (without any "overflows" or "eclipses") until I reach a very small scale, say the visual representation of one physical millimeter covering my entire screen. Could any existing library/subsystem for Win32 perform such thing, or do I still have to (re)invent the wheel?? Are there any GDI32 alternatives for Windows 32 or may be the question doesn't make sense? Is a 64-bit device space CS something impossible in Windows 32 or is it already done? May be I should try Windows 64 after all?! Finally, I'm amazed how programs like AutoCAD(R) (Windows 32 versions) can consistently display astronomical dimensions at different scales despite their
 floating point representation system and its incurred imprecision.

Any enlightenment &| recommendations would be much appreciated.

Thank you for your time.

Robert



      



More information about the cairo mailing list