For 2D I like Anti Grain Geometry. http://www.antigrain.com/
When used with the C++ Agg2D wrapper things become super easy.Here is the online documentation of Agg2D from the Delphi port of AGG
http://www.crossgl.com/aggpas/documentation/index.htmlFor another view here is an interesting article on how AGG works in Haiku and covers some of the compile time properties of AGG
https://www.haiku-os.org/documents/dev/painter_and_how_agg_works There is also a c# port. Zz