Provided by: libncarg-dev_6.1.2-7_amd64 bug

NAME

       GACCUM_TRAN_MATRIX - Accumulate transformation matrix

DESCRIPTION

       gaccum_tran_matrix   (Accumulate   transformation  matrix)  -  Constructs  a  GKS  segment
       transformation matrix by starting with an existing matrix and composing it  with  a  shift
       vector, a rotation angle, and X and Y scale factors to create a new transformation matrix.
       The rotation and scaling are done with respect to a user-defined fixed point.

SYNOPSIS

       #include <ncarg/gks.h>

       void gaccum_tran_matrix(const Gtran_matrix  t_matrix,  const  Gpoint  *point,  const  Gvec
       *shift,  Gdouble  angle,  const  Gvec  *scale,  Gcoord_switch  coord_switch,  Gtran_matrix
       tran_matrix);

DESCRIPTION

       t_matrix    (Gfloat, Input) - A 2x3 GKS transformation matrix.

       point.x     (Gfloat, Input) - X coordinate value for a fixed point  to  be  used  for  the
                   scaling and rotation parts of the output transformation.  point.x is either in
                   world coordinates or normalized device coordinates depending on the setting of
                   the argument coord_switch described below.

       point.y     (Gfloat,  Input)  -  Y  coordinate  value for a fixed point to be used for the
                   scaling and rotation parts of the output transformation.  point.y is either in
                   world coordinates or normalized device coordinates depending on the setting of
                   the argument coord_switch described below.

       shift.delta_x
                   (Gfloat, Input) - The X component of a shift vector to be used for the scaling
                   part   of  the  output  transformation.   shift.delta_x  is  either  in  world
                   coordinates or normalized device coordinates depending on the setting  of  the
                   argument coord_switch described below.

       shift.delta_y
                   (Gfloat, Input) - The Y component of a shift vector to be used for the scaling
                   part  of  the  output  transformation.   shift.delta_y  is  either  in   world
                   coordinates  or  normalized device coordinates depending on the setting of the
                   argument coord_switch described below.

       angle       (Input) - The rotation angle, in radians, to be used for the rotation part  of
                   the output transformation.

       scale.delta_x
                   (Gfloat,  Input) - X coordinate scale factor to be used in the scaling part of
                   the output transformation.

       scale.delta_y
                   (Gfloat, Input) - Y coordinate scale factor to be used in the scaling part  of
                   the output transformation.

       coord_switch
                   (Input) - A coordinate switch to indicate whether the values for the arguments
                   point and shift (described above)  are  in  world  coordinates  or  normalized
                   device coordinates.  Possible values include:

                   GCOORD_WC
                          World coordinates

                   GCOORD_NDC
                          Normalized device coordinates

                   tran_matrix (Gfloat,   Output)   -   A   2x3   array  that  contains  the  GKS
                               transformation matrix in a form that can be used as input to other
                               GKS  functions  such as gset_seg_tran.  This matrix is constructed
                               by composing the scale, rotate, and shift input, described  above,
                               with the original input matrix t_matrix.

USAGE

       If world coordinates are used, the shift vector and the fixed point are transformed by the
       current normalization transformation.

       The order in which the transformations are applied is: input matrix,  scale,  rotate,  and
       shift.

       Elements  tran_matrix[0][2] and tran_matrix[1][2] are in normalized device coordinates and
       the other elements of tran_matrix are unitless.

       gaccum_tran_matrix can be used to construct  more  general  transformation  matrices  than
       geval_tran_matrix.   The most common usage of gaccum_tran_matrix is to change the order in
       which the operations  of  scale,  rotate,  and  shift  are  applied  (which  is  fixed  in
       geval_tran_matrix).  The example below shows how to construct a transformation matrix that
       shifts first and then rotates.

EXAMPLE

       Assuming that the input matrix t_matrix is initially the identity, the following code

             pi = 3.1415926;
             point.x = point.y = 0.5;
             shift.delta_x = 0.25;
             shift.delta_y = 0.;
             scale.delta_x = 1.0;
             scale.delta_y = 1.0;
             gaccum_tran_matrix(t_matrix,&point,&shift,0.,&scale,GCOORD_WC,tout);
             for( i = 0; i < 2; i++ ) {
                 for( j = 0; j < 3; j++ ) {
                     t_matrix[i][j] = tout[i][j];
                 }
             }
             shift.delta_x = 0.;
             shift.delta_y = 0.;
             gaccum_tran_matrix(t_matrix,&point,&shift,45.*pi/180.,&scale,GCOORD_WC,tout);

       would produce a transformation matrix in tout that would shift by (.25,0.) first, and then
       rotate by 45 degrees.

ACCESS

       To use the GKS C-binding routines, load the ncarg_gks and ncarg_c libraries.

SEE ALSO

       Online:      geval_tran_matrix(3NCARG),      gclose_seg(3NCARG),      gcreate_seg(3NCARG),
       gcopy_seg_ws(3NCARG),            gdel_seg(3NCARG),             ginq_name_open_seg(3NCARG),
       ginq_set_seg_names(3NCARG), gset_seg_tran(3NCARG), gks(3NCARG), ncarg_gks_cbind(3NCARG)

       Hardcopy: User's Guide for NCAR GKS-0A Graphics; NCAR Graphics Fundamentals, UNIX Version

COPYRIGHT

       Copyright (C) 1987-2009
       University Corporation for Atmospheric Research
       The use of this Software is governed by a License Agreement.