58 affine_vector[0] = 1.;
59 affine_vector[1] = 0.;
60 affine_vector[2] = 0.;
61 affine_vector[3] = 1.;
62 affine_vector[4] = 0.;
63 affine_vector[5] = 0.;
75 affine_vector[0] = 1.;
76 affine_vector[1] = 0.;
77 affine_vector[2] = 0.;
78 affine_vector[3] = 1.;
82 affine_vector[4] = -xtranslate;
83 affine_vector[5] = -ytranslate;
100 plwarn(
"plP_affine_scale: attempt to scale X coordinates by zero." );
105 plwarn(
"plP_affine_scale: attempt to scale Y coordinates by zero." );
108 affine_vector[0] = 1. / xscale;
109 affine_vector[1] = 0.;
110 affine_vector[2] = 0.;
111 affine_vector[3] = 1. / yscale;
112 affine_vector[4] = 0.;
113 affine_vector[5] = 0.;
125 PLFLT cosangle = cos(
PI * angle / 180. );
126 PLFLT sinangle = sin(
PI * angle / 180. );
127 affine_vector[0] = cosangle;
128 affine_vector[1] = -sinangle;
129 affine_vector[2] = sinangle;
130 affine_vector[3] = cosangle;
131 affine_vector[4] = 0.;
132 affine_vector[5] = 0.;
145 PLFLT tanangle = tan(
PI * angle / 180. );
146 affine_vector[0] = 1.;
147 affine_vector[1] = 0.;
148 affine_vector[2] = -tanangle;
149 affine_vector[3] = 1.;
150 affine_vector[4] = 0.;
151 affine_vector[5] = 0.;
164 PLFLT tanangle = tan(
PI * angle / 180. );
165 affine_vector[0] = 1.;
166 affine_vector[1] = -tanangle;
167 affine_vector[2] = 0.;
168 affine_vector[3] = 1.;
169 affine_vector[4] = 0.;
170 affine_vector[5] = 0.;
185 PLFLT *affine_vectorA,
192 result[0] = affine_vectorB[0] * affine_vectorC[0] +
193 affine_vectorB[2] * affine_vectorC[1];
194 result[2] = affine_vectorB[0] * affine_vectorC[2] +
195 affine_vectorB[2] * affine_vectorC[3];
196 result[4] = affine_vectorB[0] * affine_vectorC[4] +
197 affine_vectorB[2] * affine_vectorC[5] +
200 result[1] = affine_vectorB[1] * affine_vectorC[0] +
201 affine_vectorB[3] * affine_vectorC[1];
202 result[3] = affine_vectorB[1] * affine_vectorC[2] +
203 affine_vectorB[3] * affine_vectorC[3];
204 result[5] = affine_vectorB[1] * affine_vectorC[4] +
205 affine_vectorB[3] * affine_vectorC[5] +
208 for ( i = 0; i <
NAFFINE; i++ )
209 affine_vectorA[i] = result[i];
void plP_affine_identity(PLFLT *affine_vector)
void plP_affine_yskew(PLFLT *affine_vector, PLFLT angle)
void plP_affine_multiply(PLFLT *affine_vectorA, PLFLT_VECTOR affine_vectorB, PLFLT_VECTOR affine_vectorC)
void plP_affine_rotate(PLFLT *affine_vector, PLFLT angle)
void plP_affine_translate(PLFLT *affine_vector, PLFLT xtranslate, PLFLT ytranslate)
void plwarn(PLCHAR_VECTOR errormsg)
void plP_affine_xskew(PLFLT *affine_vector, PLFLT angle)
const PLFLT * PLFLT_VECTOR
void plP_affine_scale(PLFLT *affine_vector, PLFLT xscale, PLFLT yscale)