August 2, 2008 will

More Pie?

sliceofpie I've been doing a little more work on my 3D pie-chart renderer. I've added beveling and tweaked colors to a point where I can render charts that -- in my opinion -- are a better quality than those produced from Apple's Numbers. Next step is to add labels over the main image. Povray does support rendering of True Type Fonts, but it is a 2D overlay that I'm looking for (not 3D text), so I plan to use PyCairo to render the labels. Once I've perfected the chart renderer I can build a polished web interface, and a web service for the render queue. All in Python, of course!

I know that 3D pie charts aren't as clear as their 2D counterparts, but I still think there is a place (and hopefully a market) for pretty charts like this. Even if it isn't a money-spinner, its still an interesting project, with some fun problems to solve!

Use Markdown for formatting
*Italic* **Bold** `inline code` Links to [Google](http://www.google.com) > This is a quote > ```python import this ```
your comment will be previewed here
gravatar
Carl T.

Duncan,
Is this the one made with POV-Ray, or am I mixing you up with another blogger's post?
Either way, looks good. I love the effects POV-Ray gives, and it's pretty easy to use.
Carl T.

gravatar
Carl T.

Sorry - Will M., not Duncan M. - my apologies.

gravatar
Richard Jones

If you just want anti-aliased TTF rendering then use pyglet. No cairo dependency then.

gravatar
Will

Carl, yeah its done with POVRay. I create pov files with Mako templates.

Richard, Can Pyglet be used without a window? ie Just to load a PNG, draw some text on it and save?

gravatar
Florian Jung

You may want to use "merge" instead of "union" in your povray source to loose the inside edges especially visible in the green piece of your pie.

gravatar
Will

Thanks for the tip, Florian. I had been wondering how to get rid of the inside edges. Update image looks much better...

gravatar
Richard Jones

Hey Will. pyglet will want to be *able* to create a window - it does need to create a GL context, but can do so without displaying a window.