FAQ
- What's about these Triple
and
Cell things ?
- The .ui files for the examples don't match my Qt
version, what can I do ?
- How can I change the axes tic length ?
- What is the algorithm behind the axis switching
feature ?
What's about these
Triple and Cell things ?
This relates to the use of
SurfacePlot::loadFromData(Qwt3D::TripleVector const& data,
Qwt3D::CellVector const& poly). data is simply a vector of your
points in R^3 and poly defines the polygons
(surfaces) build from these points. Without the poly vector you would
end up with a pure point cloud.
Example:
TripleVector:
0: (2,6,7)
1: (0.34,5,3)
2: (-2,-12,9)
3: and so on ...
CellVector:
0: (0,2,3) // the Points 0,2 and 3 from
the TripleVector
1: (1,6,5,3) //
" 1,6,5 and
3 "
2: (3,4,2) //
The sequence of points defines a counter-clockwise ordering, that means
for CellVector[1]:
Draw an edge from TripleVector[1] to TripleVector[6], afterwards
from 6 to 5, from 5 to 3 and close the cell with an edge from 3 to 1.
The
resulting polygon must be convex. Triangulation is deliberately not part of the
library.
It's up to the user to set up the
both vectors. The Mesh2MainWindow::openMesh() function from the mesh2
example demonstrates an user-defined Reader for FEM data.
The raw data for this example are organized in 2 different files for
cells and triple respectively.
The .ui files for the
examples don't match my Qt version. What can I do ?
The reason not to change this is a
complex interaction between designer, uic and moc between different
(also minor versions) of Qt.
Sometimes a workaround is to manually change the "UI version" tag on
top of the .ui file. The only difference I will care for is the port
from Qt3 to Qt4. In any other cases you are on your own.
How can I change the
axes tic length ?
The 12 possible axes reside in the
CoordinateSystem::axes vector. The
vector is public, so all of the axes public properties are individually
addressable.
What is the algorithm behind the axis
switching feature ?
- Reduce the problem and project all coordinate axes to the
viewport
plane --> (a)
- Continue in reduction by building the convex hull for the
projection and - as the resulting operation - removing the inner
axes ---> (b)
- Make a choice from resp. two axes (labeled x0,x1
; y0,y1
; ... here). There is more than one way here, I've favored a
'bottommost/leftmost' approach - check CoordinateSystem::chooseAxes()
for details
regarding
comparison criteria.
- Adjust tic direction and label position (not yet
perfect)
(CoordinateSystem::autoDecorateExposedAxis())
a)
|

b)
|