Standard Library procedure that accumulates one or more sequences of translation, scaling, rotation, perspective, or oblique transformations and stores the result in the system variable !P.T.
Y' = Y + Z(d * sin(a))
where Oblique(0) = d and Oblique(1) = a
Reset A scalar which, if nonzero, resets !P.T (the transformation matrix) back to the default identity matrix.
Rotate A three-element vector, in units of degrees, containing the specified rotations about the x-, y-, and z-axes. Rotations are performed in the order of X, Y, and then Z.
Scale A three-element vector containing the specified scaling factors in the x, y, and z directions.
Translate A three-element vector containing the specified translations in the x, y, and z directions.
XYexch If nonzero, exchanges the x- and y-axes.
XZexch If nonzero, exchanges the x- and z-axes.
YZexch If nonzero, exchanges the y- and z-axes.
The 4-by-4 transformation matrix, !P.T, is updated by this procedure, but the system variable !P.T3d is not set. This means that for the transformations to take effect, you must set !P.T3d equal to 1, or use the T3d keyword, in any plotting procedure that will make use of this transformation. Since all the graphic routines use the !P.T matrix for output, the T3D procedure can be used to effect graphic output.
CAUTION: It is possible to create a transformation matrix with T3D that will not work correctly with the SURFACE or SHADE_SURF procedures. The only T3D transformations allowed with these procedures are those that end up with the z-axis placed vertically on the display screen.
NOTE: The matrix notation used in the procedure is reversed from the normal PV-WAVE sense in order to conform to this reference. Moreover, a right-handed system is used, meaning that positive rotations are counterclockwise when looking from a positive axis to the origin.
T3D, /Reset, Rotate=[30,0,0], Perspective=-1
T3D, /Reset, Translate=[-.5,-.5,0], Rotate=[0,0,45]
T3D, Translate=[.5,.5,0]
b = FINDGEN(37)*10 y = SIN(b*!Dtor)/EXP(b/200)*4 sz = SIZE(y) j = REFORM(y, sz(1), 1)
SURFACE, j, /Nodata, /Save, YMargin=[0, 0], $ ZStyle=1, ZRange=[0, 1]
T3D, /YZexch
TEK_COLOR PLOT, b, y, /T3d, ZValue=1.0, YMargin=[0, 0], /Noerase
POLYFILL, b, y, /T3d, Color=6, Z=1.0
PLOT, b, y, /T3d, ZValue=0.5, YMargin=[0, 0], /Noerase POLYFILL, b, y, /T3d, Color=8, Z=0.5
PLOT, b, y, /T3d, ZValue=0.0, YMargin=[0, 0], /Noerase POLYFILL, b, y, /T3d, Color=7, Z=0.0
T3D, /Reset
System Variables: !P.T, !P.T3d
For more information and examples, see Drawing Three-dimensional Graphics in Chapter 5 of the PV-WAVE User's Guide.