1GEVAL_TRAN_MATRIX(3NCARG)        NCAR GRAPHICS       GEVAL_TRAN_MATRIX(3NCARG)
2
3
4

NAME

6       geval_tran_matrix  (Evaluate  transformation matrix) - Constructs a GKS
7       segment transformation matrix starting from a given point, a shift vec‐
8       tor, a rotation angle, and X and Y scale factors.
9

SYNOPSIS

11       #include <ncarg/gks.h>
12
13       void  geval_tran_matrix(const Gpoint *point, const Gvec *shift, Gdouble
14       angle, const  Gvec  *scale,  Gcoord_switch  coord_switch,  Gtran_matrix
15       tran_matrix);
16

DESCRIPTION

18       point.x     (Gfloat,  Input)  - An X coordinate value for a fixed point
19                   to be used for the scaling and rotation parts of the output
20                   transformation.   point.x is either in world coordinates or
21                   normalized device coordinates depending on the  setting  of
22                   the argument coord_switch described below.
23
24       point.y     (Gfloat, Input) - A Y coordinate value for a fixed point to
25                   be used for the scaling and rotation parts  of  the  output
26                   transformation.   point.y is either in world coordinates or
27                   normalized device coordinates depending on the  setting  of
28                   the argument coord_switch described below.
29
30       shift.delta_x
31                   (Gfloat,  Input)  - The X component of a shift vector to be
32                   used for the scaling part  of  the  output  transformation.
33                   shift.delta_x  is either in world coordinates or normalized
34                   device coordinates depending on the setting of the argument
35                   coord_switch described below.
36
37       shift.delta_y
38                   (Gfloat,  Input)  - The Y component of a shift vector to be
39                   used for the scaling part  of  the  output  transformation.
40                   shift.delta_y  is either in world coordinates or normalized
41                   device coordinates depending on the setting of the argument
42                   coord_switch described below.
43
44       angle       (Input)  -  The  rotation angle, in radians, to be used for
45                   the rotation part of the output transformation.
46
47       scale.delta_x
48                   (Gfloat Input) - An X coordinate scale factor to be used in
49                   the scaling part of the output transformation.
50
51       scale.delta_y
52                   (Gfloat  Input) - A Y coordinate scale factor to be used in
53                   the scaling part of the output transformation.
54
55       coord_switch
56                   (Input) - A coordinate switch to indicate whether the  val‐
57                   ues for the arguments shift and scale (described above) are
58                   in world  coordinates  or  normalized  device  coordinates.
59                   Possible values include:
60
61                   GCOORD_WC
62                          World coordinates
63
64                   GCOORD_NDC
65                          Normalized device coordinates
66
67                   tran_matrix (Gfloat,  Output)  -  A 2x3 array that contains
68                               the GKS transformation matrix in  a  form  that
69                               can  be  used  as  input to other GKS functions
70                               such as gset_seg_tran.
71

USAGE

73       If world coordinates are used, the shift vector and the fixed point are
74       transformed by the current normalization transformation.
75
76       The  order  of  the  transformation operations as built into the output
77       matrix is: scale (relative to the fixed point); rotate (relative to the
78       fixed point; shift.
79
80       Elements  tran_matrix[0][2]  and  tran_matrix[1][2]  are  in normalized
81       device coordinates and the other elements of tran_matrix are unitless.
82

EXAMPLE

84       The following code
85
86             pi = 3.1415926;
87             point.x = point.y = 0.5;
88             shift.delta_x = 0.25;
89             shift.delta_y = 0.;
90             scale.delta_x = 0.5;
91             scale.delta_y = 1.5;
92             geval_tran_matrix(&point,&shift,45.*pi/180.,&scale,GCOORD_WC,tm);
93
94       would produce a transformation matrix in tm that  would:  scale  the  X
95       coordinates  by  .5,  scale  the  Y coordinates by 1.5 (relative to the
96       fixed point of (.5,.5) ); rotate by 45 degrees (relative to  the  fixed
97       point  (.5,.5)  ); and shift by .25 in X and 0. in Y.  The input values
98       for the fixed point and shift vector are in world coordintes.
99

ACCESS

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

SEE ALSO

105       Online:     gaccum_tran_matrix(3NCARG),    gclose_seg(3NCARG),    gcre‐
106       ate_seg(3NCARG),        gcopy_seg_ws(3NCARG),         gdel_seg(3NCARG),
107       ginq_name_open_seg(3NCARG),                 ginq_set_seg_names(3NCARG),
108       gset_seg_tran(3NCARG), gks(3NCARG), ncarg_gks_cbind(3NCARG)
109
110       Hardcopy: User's Guide for NCAR GKS-0A Graphics; NCAR  Graphics  Funda‐
111       mentals, UNIX Version
112
114       Copyright (C) 1987-2007
115       University Corporation for Atmospheric Research
116
117       This  documentation  is  free  software; you can redistribute it and/or
118       modify it under the terms of the GNU General  Public  License  as  pub‐
119       lished  by  the  Free  Software  Foundation;  either  version  2 of the
120       License, or (at your option) any later version.
121
122       This software is distributed in the hope that it will  be  useful,  but
123       WITHOUT  ANY  WARRANTY;  without  even  the  implied  warranty  of MER‐
124       CHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU  General
125       Public License for more details.
126
127       You should have received a copy of the GNU General Public License along
128       with this software; if not, write  to  the  Free  Software  Foundation,
129       Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
130
131
132
133UNIX                              March 1993         GEVAL_TRAN_MATRIX(3NCARG)
Impressum