Description
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.
Functions
cairo_translate ()
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.
Since: 1.0
cairo_scale ()
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.
Since: 1.0
cairo_rotate ()
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.
Since: 1.0
cairo_transform ()
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.
Since: 1.0
cairo_set_matrix ()
void
cairo_set_matrix (cairo_t *cr,
const cairo_matrix_t *matrix);
Modifies the current transformation matrix (CTM) by setting it
equal to matrix
.
Since: 1.0
cairo_get_matrix ()
void
cairo_get_matrix (cairo_t *cr,
cairo_matrix_t *matrix);
Stores the current transformation matrix (CTM) into matrix
.
Since: 1.0
cairo_identity_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.
Since: 1.0
cairo_user_to_device ()
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).
Since: 1.0
cairo_user_to_device_distance ()
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
).
Since: 1.0
cairo_device_to_user ()
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).
Since: 1.0
cairo_device_to_user_distance ()
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
).
Since: 1.0