Vector Output

Beginning with version 0.2.0 qwtplot3d supports PostScript, Encapsulated PostScript and PDF output by using  gl2ps.  Pixmap output exists in generic form, seamless provided by Qt. The following comparison table shows (in some way arbitrary and oversimplified) the pros and cons for various approachs:



Vector Graphics
Text Scaling
Text Positioning
Text Content
Creation Speed
Shading
Transparency
EPS
+++ (+++)
+
-
+
?
EPS + TeX +++ +++
+++
-
+
?
PDF
+++ -(+)
+
-
++(+)
(+)
PDF + TeX +++ +++ +++
- ++(+)
(+)
Pixmap
---
+++
+
+++
++
(++)

Legend:        +++ Optimal case       --- Worst case        (...) Possible but not implemented

Example:


PDF example

... link to PDF (387 kB)


Remarks:


Vector Graphics
Text Scaling
Self-explanatory ...
Text Positioning
AFAIK, PostScript can calculate glyph widths. Therefore,  it should be possible to place arbitrarily aligned text boxes  at every location precisely. PDF on the other hand, needs access to font metrics in order to use the related information. For the moment, I have no plans for  inclusion of Adobes afm files for standard fonts. I'm also not sure, whether this affects  licensing. Another option is perhaps the utilizing of  free Nimbus fonts. No open questions remain,  if you can use combined TeX - PDF or TeX - EPS output.
Text Content Again, TeX suits as the best method here. You can include mathematical formulas and other TeX constructs in your strings. The other formats - especially PDF - are limited to  their (limited) semantic possibilities.
Creation Speed Always poor compared to pixmap storing, mainly due to necessary emulations of OpenGL's processing pipeline (sorting etc.)
Shading PostScript can emulate this,  causing magnified and more complex files (slower rendering). PDF has inherent shading support. This could also be extended beyond common Gouraud shading (not implemented and the only reason for the plus sign to appear in parentheses)
Transparency PDF has a transparency concept with most important cases yet implemented in gl2ps. The utilizing by the widget is still a todo.



... to finish.