blob: 26f7fe3b1ed2c14c15c36a2997f1b123d31a3467 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
|
<!-- ##### SECTION Title ##### -->
cairo_matrix_t
<!-- ##### SECTION Short_Description ##### -->
Generic matrix operations
<!-- ##### SECTION Long_Description ##### -->
<para><indexterm><primary>types</primary><secondary>cairo_matrix</secondary></indexterm><indexterm><primary/></indexterm>
#cairo_matrix_t is used throughout cairo to convert between different
coordinate spaces. A #cairo_matrix_t holds an affine transformation,
such as a scale, rotation, shear, or a combination of these.
The transformation of a point (<literal>x</literal>,<literal>y</literal>)
is given by:
</para>
<programlisting>
x_new = xx * x + xy * y + x0;
y_new = yx * x + yy * y + y0;
</programlisting>
<para>
The current transformation matrix of a #cairo_t, represented as a
#cairo_matrix_t, defines the transformation from user-space
coordinates to device-space coordinates. See cairo_get_matrix() and
cairo_set_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:
|