5# define M_PI 3.14159265358979323846
28 const double affine[6])
32 dst->
x = x * affine[0] + y * affine[2] + affine[4];
33 dst->
y = x * affine[1] + y * affine[3] + affine[5];
60 double r_det = (src[0] * src[3] - src[1] * src[2]);
67 dst[0] = src[3] * r_det;
68 dst[1] = -src[1] * r_det;
69 dst[2] = -src[2] * r_det;
70 dst[3] = src[0] * r_det;
71 dst[4] = -src[4] * dst[0] - src[5] * dst[2];
72 dst[5] = -src[4] * dst[1] - src[5] * dst[3];
93int gdAffineFlip (
double dst[6],
const double src[6],
const int flip_h,
const int flip_v)
95 dst[0] = flip_h ? - src[0] : src[0];
96 dst[1] = flip_h ? - src[1] : src[1];
97 dst[2] = flip_v ? - src[2] : src[2];
98 dst[3] = flip_v ? - src[3] : src[3];
99 dst[4] = flip_h ? - src[4] : src[4];
100 dst[5] = flip_v ? - src[5] : src[5];
123 double dst0, dst1, dst2, dst3, dst4, dst5;
125 dst0 = m1[0] * m2[0] + m1[1] * m2[2];
126 dst1 = m1[0] * m2[1] + m1[1] * m2[3];
127 dst2 = m1[2] * m2[0] + m1[3] * m2[2];
128 dst3 = m1[2] * m2[1] + m1[3] * m2[3];
129 dst4 = m1[4] * m2[0] + m1[5] * m2[2] + m2[4];
130 dst5 = m1[4] * m2[1] + m1[5] * m2[3] + m2[5];
172int gdAffineScale (
double dst[6],
const double scale_x,
const double scale_y)
199 const double sin_t =
sin (angle *
M_PI / 180.0);
200 const double cos_t =
cos (angle *
M_PI / 180.0);
226 dst[2] =
tan(angle *
M_PI / 180.0);
247 dst[1] =
tan(angle *
M_PI / 180.0);
291 return sqrt (fabs (src[0] * src[3] - src[1] * src[2]));
struct gdPointF * gdPointFPtr
int gdAffineInvert(double dst[6], const double src[6])
int gdAffineApplyToPointF(gdPointFPtr dst, const gdPointFPtr src, const double affine[6])
int gdAffineShearVertical(double dst[6], const double angle)
int gdAffineRectilinear(const double m[6])
int gdAffineIdentity(double dst[6])
int gdAffineEqual(const double m1[6], const double m2[6])
int gdAffineConcat(double dst[6], const double m1[6], const double m2[6])
int gdAffineRotate(double dst[6], const double angle)
int gdAffineTranslate(double dst[6], const double offset_x, const double offset_y)
int gdAffineShearHorizontal(double dst[6], const double angle)
double gdAffineExpansion(const double src[6])
int gdAffineFlip(double dst[6], const double src[6], const int flip_h, const int flip_v)
int gdAffineScale(double dst[6], const double scale_x, const double scale_y)