Hi Christian,
> does anyone know where I can find the definition of the 16 coefficients of
> the matrix of a projection control?
DisplayImplJ3D uses the 4 x 4 matrices defined by Java3D,
which are described in:
http://java.sun.com/products/java-media/3D/forDevelopers/J3D_1_2_API/j3dguide/index.html
under Section 8.1.29 on Transform3D and Appendix A.2 on matrices.
The easy way to manipulate these matrices is using two static
methods of visad.java3d.MouseBehaviorJ3D:
public static double[] static_multiply_matrix(double[] a, double[] b);
public static double[] static_make_matrix(double rotx, double roty, double
rotz,
double scale, double transx, double transy, double transz);
The first multiplies two 4 x 4 matrices appropriately to compose
their view transforms, the second constructs a 4 x 4 matrix with
the given rotation angles (in degrees and around the various axes),
scale, and translations.
The only way to figure this out is to experiment with these.
See visad/examples/Test57 for a simple example.
> I am looking also for an example of drawing and animating trajectories
> of particles in 3d.
There are no current examples that I am aware of, but it is
certainly feasible. The Aeri example at:
http://www.ssec.wisc.edu/~billh/visad.html#aeri
analyzes wind data to generate "flags" that are a little like
trajectories.
A set of trajectories are a set of 1-D paths through 4-D space-time,
but for an animated display you'd want a 1-D sub-path at each time
step. This would be a FieldImpl with MathType:
(time -> Set(x, y, z))
displayed with ScalarMaps:
time -> Animation
x -> XAxis
y -> YAxis
z -> ZAxis
and where the Sets are UnionSets of Gridded3DSets with manifold
dimension = 1 (analogous to map outlines which are UnionSets
of Gridded2DSets with manifold dimension = 1). Each Gridded3DSet
with manifold dimension = 1 would be the trajectory of one
particle, taken over a time interval:
[current_time - trajectory_length, current_time]
and the UnionSet would be taken over the set of particles.
Note that current_time is just the time sample of the FieldImpl
(time -> Set(x, y, z)), and trajectory_length is just the time
interval represented by the instantaneous display of a
trajectory.
The system does need an example of such a trajectory display.
If you'd like to contribute one that would be great, otherwise
one of these days we will add one.
Cheers,
Bill
----------------------------------------------------------
Bill Hibbard, SSEC, 1225 W. Dayton St., Madison, WI 53706
hibbard@xxxxxxxxxxxxxxxxx 608-263-4427 fax: 608-263-6738
http://www.ssec.wisc.edu/~billh/vis.html