Cairo: A Vector Graphics Library | ||||
---|---|---|---|---|
Top | Description |
void cairo_translate (cairo_t *cr
,double tx
,double ty
); void cairo_scale (cairo_t *cr
,double sx
,double sy
); void cairo_rotate (cairo_t *cr
,double angle
); void cairo_transform (cairo_t *cr
,const cairo_matrix_t *matrix
); void cairo_set_matrix (cairo_t *cr
,const cairo_matrix_t *matrix
); void cairo_get_matrix (cairo_t *cr
,cairo_matrix_t *matrix
); void cairo_identity_matrix (cairo_t *cr
); void cairo_user_to_device (cairo_t *cr
,double *x
,double *y
); void cairo_user_to_device_distance (cairo_t *cr
,double *dx
,double *dy
); void cairo_device_to_user (cairo_t *cr
,double *x
,double *y
); void cairo_device_to_user_distance (cairo_t *cr
,double *dx
,double *dy
);
The current transformation matrix, ctm, is a two-dimensional affine transformation that maps all coordinates and other drawing instruments from the user space into the surface's canonical coordinate system, also known as the device space.
void cairo_translate (cairo_t *cr
,double tx
,double ty
);
Modifies the current transformation matrix (CTM) by translating the
user-space origin by (tx
, ty
). This offset is interpreted as a
user-space coordinate according to the CTM in place before the new
call to cairo_translate()
. In other words, the translation of the
user-space origin takes place after any existing transformation.
|
a cairo context |
|
amount to translate in the X direction |
|
amount to translate in the Y direction |
void cairo_scale (cairo_t *cr
,double sx
,double sy
);
Modifies the current transformation matrix (CTM) by scaling the X
and Y user-space axes by sx
and sy
respectively. The scaling of
the axes takes place after any existing transformation of user
space.
|
a cairo context |
|
scale factor for the X dimension |
|
scale factor for the Y dimension |
void cairo_rotate (cairo_t *cr
,double angle
);
Modifies the current transformation matrix (CTM) by rotating the
user-space axes by angle
radians. The rotation of the axes takes
places after any existing transformation of user space. The
rotation direction for positive angles is from the positive X axis
toward the positive Y axis.
|
a cairo context |
|
angle (in radians) by which the user-space axes will be rotated |
void cairo_transform (cairo_t *cr
,const cairo_matrix_t *matrix
);
Modifies the current transformation matrix (CTM) by applying
matrix
as an additional transformation. The new transformation of
user space takes place after any existing transformation.
|
a cairo context |
|
a transformation to be applied to the user-space axes |
void cairo_set_matrix (cairo_t *cr
,const cairo_matrix_t *matrix
);
Modifies the current transformation matrix (CTM) by setting it
equal to matrix
.
|
a cairo context |
|
a transformation matrix from user space to device space |
void cairo_get_matrix (cairo_t *cr
,cairo_matrix_t *matrix
);
Stores the current transformation matrix (CTM) into matrix
.
|
a cairo context |
|
return value for the matrix |
void cairo_identity_matrix (cairo_t *cr
);
Resets the current transformation matrix (CTM) by setting it equal to the identity matrix. That is, the user-space and device-space axes will be aligned and one user-space unit will transform to one device-space unit.
|
a cairo context |
void cairo_user_to_device (cairo_t *cr
,double *x
,double *y
);
Transform a coordinate from user space to device space by multiplying the given point by the current transformation matrix (CTM).
|
a cairo context |
|
X value of coordinate (in/out parameter) |
|
Y value of coordinate (in/out parameter) |
void cairo_user_to_device_distance (cairo_t *cr
,double *dx
,double *dy
);
Transform a distance vector from user space to device space. This
function is similar to cairo_user_to_device()
except that the
translation components of the CTM will be ignored when transforming
(dx
,dy
).
|
a cairo context |
|
X component of a distance vector (in/out parameter) |
|
Y component of a distance vector (in/out parameter) |
void cairo_device_to_user (cairo_t *cr
,double *x
,double *y
);
Transform a coordinate from device space to user space by multiplying the given point by the inverse of the current transformation matrix (CTM).
|
a cairo |
|
X value of coordinate (in/out parameter) |
|
Y value of coordinate (in/out parameter) |
void cairo_device_to_user_distance (cairo_t *cr
,double *dx
,double *dy
);
Transform a distance vector from device space to user space. This
function is similar to cairo_device_to_user()
except that the
translation components of the inverse CTM will be ignored when
transforming (dx
,dy
).
|
a cairo context |
|
X component of a distance vector (in/out parameter) |
|
Y component of a distance vector (in/out parameter) |