Augmenting 3D graphics with 2D labels

Tech Tip: Click here to run a free scan for Windows Errors and optimize PC performance




I am writing a 3D graphing component built upon WPF and would like to have
2D vector graphics (e.g. typeset mathematics) as labels laid out from 3D
coordinates. For example, a tick on an axis has a 3D coordinate and its 2D
label might be right-aligned to the 2D projection of that 3D point.

The following Mathematica plot illustrates the functionality I am after:

http://math.arizona.edu/~goriely/M322/Mathma-ComplexFunc.jpg

I have done some Googling but not found a solution. Some people use 3D
labels but these are ugly and suffer from various artefacts (e.g. they
become heavily distorted or disappear completely when viewed at the wrong
angle).

The best solution I can imagine is a 2D DrawingVisual overlaid over my 3D
Viewport but I need a function to project 3D coordinates onto 2D
coordinates and WPF does not seem to provide one. I can reverse engineer
the projection algorithm used by WPF but Microsoft may change the algorithm
in the future and break my code.

Any ideas?

--
Dr Jon D Harrop, Flying Frog Consultancy
http://www.ffconsultancy.com/products/?u
.