mirror of
https://gitlab.freedesktop.org/cairo/cairo.git
synced 2025-12-28 16:50:19 +01:00
174 lines
2.7 KiB
Text
174 lines
2.7 KiB
Text
<!-- ##### SECTION Title ##### -->
|
|
cairo_matrix_t
|
|
|
|
<!-- ##### SECTION Short_Description ##### -->
|
|
|
|
Transformation matrices
|
|
|
|
<!-- ##### SECTION Long_Description ##### -->
|
|
|
|
<para><indexterm><primary>types</primary><secondary>cairo_matrix</secondary></indexterm><indexterm><primary/></indexterm>
|
|
<structname>cairo_matrix_t</structname> is used throughout
|
|
Cairo to represents between different coordinates spaces.
|
|
A <structname>cairo_matrix</structname> holds an affine
|
|
transformation, such as a scale, rotation, or shear, or a
|
|
combination of those. Mathematically, the effect of an affine
|
|
transformation on a point (<literal>x</literal>,<literal>y</literal>) is given by:
|
|
</para>
|
|
<programlisting>
|
|
x_new = x * a + y * c + tx;
|
|
y_new = x * b + y * d + ty;
|
|
</programlisting>
|
|
<para>
|
|
The parameters <literal>a</literal>, <literal>b</literal>,
|
|
<literal>c</literal>, <literal>d</literal>, <literal>tx</literal>,
|
|
<literal>ty</literal> can be retrieved with
|
|
cairo_matrix_get_affine() and set with cairo_matrix_get_affine().
|
|
</para>
|
|
<para>
|
|
The primary use of transformation matrices in Cairo is as the
|
|
current transformation matrix in a #cairo_t. The current
|
|
transformation matrix gives the transformation from user space
|
|
coordinates to device coordinates. See cairo_set_matrix(),
|
|
cairo_current_matrix().
|
|
</para>
|
|
|
|
<!-- ##### SECTION See_Also ##### -->
|
|
<para>
|
|
|
|
</para>
|
|
|
|
<!-- ##### SECTION Stability_Level ##### -->
|
|
|
|
|
|
<!-- ##### STRUCT cairo_matrix_t ##### -->
|
|
<para>
|
|
|
|
</para>
|
|
|
|
@xx:
|
|
@yx:
|
|
@xy:
|
|
@yy:
|
|
@x0:
|
|
@y0:
|
|
|
|
<!-- ##### FUNCTION cairo_matrix_init ##### -->
|
|
<para>
|
|
|
|
</para>
|
|
|
|
@matrix:
|
|
@xx:
|
|
@yx:
|
|
@xy:
|
|
@yy:
|
|
@x0:
|
|
@y0:
|
|
|
|
|
|
<!-- ##### FUNCTION cairo_matrix_init_identity ##### -->
|
|
<para>
|
|
|
|
</para>
|
|
|
|
@matrix:
|
|
|
|
|
|
<!-- ##### FUNCTION cairo_matrix_init_translate ##### -->
|
|
<para>
|
|
|
|
</para>
|
|
|
|
@matrix:
|
|
@tx:
|
|
@ty:
|
|
|
|
|
|
<!-- ##### FUNCTION cairo_matrix_init_scale ##### -->
|
|
<para>
|
|
|
|
</para>
|
|
|
|
@matrix:
|
|
@sx:
|
|
@sy:
|
|
|
|
|
|
<!-- ##### FUNCTION cairo_matrix_init_rotate ##### -->
|
|
<para>
|
|
|
|
</para>
|
|
|
|
@matrix:
|
|
@radians:
|
|
|
|
|
|
<!-- ##### FUNCTION cairo_matrix_translate ##### -->
|
|
<para>
|
|
|
|
</para>
|
|
|
|
@matrix:
|
|
@tx:
|
|
@ty:
|
|
|
|
|
|
<!-- ##### FUNCTION cairo_matrix_scale ##### -->
|
|
<para>
|
|
|
|
</para>
|
|
|
|
@matrix:
|
|
@sx:
|
|
@sy:
|
|
|
|
|
|
<!-- ##### FUNCTION cairo_matrix_rotate ##### -->
|
|
<para>
|
|
|
|
</para>
|
|
|
|
@matrix:
|
|
@radians:
|
|
|
|
|
|
<!-- ##### FUNCTION cairo_matrix_invert ##### -->
|
|
<para>
|
|
|
|
</para>
|
|
|
|
@matrix:
|
|
@Returns:
|
|
|
|
|
|
<!-- ##### FUNCTION cairo_matrix_multiply ##### -->
|
|
<para>
|
|
|
|
</para>
|
|
|
|
@result:
|
|
@a:
|
|
@b:
|
|
|
|
|
|
<!-- ##### FUNCTION cairo_matrix_transform_distance ##### -->
|
|
<para>
|
|
|
|
</para>
|
|
|
|
@matrix:
|
|
@dx:
|
|
@dy:
|
|
|
|
|
|
<!-- ##### FUNCTION cairo_matrix_transform_point ##### -->
|
|
<para>
|
|
|
|
</para>
|
|
|
|
@matrix:
|
|
@x:
|
|
@y:
|
|
|
|
|