Manipulating the current transformation matrix
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.
<cairo-t>
) (tx <double>
) (ty <double>
)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
<cairo-t>
) (sx <double>
) (sy <double>
)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
<cairo-t>
) (angle <double>
)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
<cairo-t>
) (matrix <cairo-matrix-t>
)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
<cairo-t>
) (matrix <cairo-matrix-t>
)Modifies the current transformation matrix (CTM) by setting it equal to matrix.
a cairo context
a transformation matrix from user space to device space
<cairo-t>
) (matrix <cairo-matrix-t>
)Stores the current transformation matrix (CTM) into matrix.
a cairo context
return value for the matrix
<cairo-t>
)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
<cairo-t>
) ⇒ (x <double>
) (y <double>
)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)
<cairo-t>
) ⇒ (dx <double>
) (dy <double>
)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)
<cairo-t>
) ⇒ (x <double>
) (y <double>
)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)
<cairo-t>
) ⇒ (dx <double>
) (dy <double>
)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)