setCorners method
void
setCorners()
Implementation
void setCorners(double x0, double y0, double x1, double y1, double x2,
double y2, double x3, double y3) {
_x0 = x0;
_y0 = y0;
_x1 = x1;
_y1 = y1;
_x2 = x2;
_y2 = y2;
_x3 = x3;
_y3 = y3;
_dx1 = x1 - x2;
_dy1 = y1 - y2;
_dx2 = x3 - x2;
_dy2 = y3 - y2;
_dx3 = ((x0 - x1) + x2) - x3;
_dy3 = ((y0 - y1) + y2) - y3;
double a11;
double a12;
double a13;
double a21;
double a22;
double a23;
double a31;
double a32;
if (_dx3 == 0.0 && _dy3 == 0.0) {
a11 = x1 - x0;
a21 = x2 - x1;
a31 = x0;
a12 = y1 - y0;
a22 = y2 - y1;
a32 = y0;
a13 = a23 = 0.0;
} else {
a13 = (_dx3! * _dy2 - _dx2 * _dy3!) / (_dx1 * _dy2 - _dy1 * _dx2);
a23 = (_dx1 * _dy3! - _dy1 * _dx3!) / (_dx1 * _dy2 - _dy1 * _dx2);
a11 = (x1 - x0) + a13 * x1;
a21 = (x3 - x0) + a23 * x3;
a31 = x0;
a12 = (y1 - y0) + a13 * y1;
a22 = (y3 - y0) + a23 * y3;
a32 = y0;
}
_a = a22 - a32 * a23;
_b = a31 * a23 - a21;
_c = a21 * a32 - a31 * a22;
_d = a32 * a13 - a12;
_e = a11 - a31 * a13;
_f = a31 * a12 - a11 * a32;
_g = a12 * a23 - a22 * a13;
_h = a21 * a13 - a11 * a23;
_i = a11 * a22 - a21 * a12;
_updateSpaces();
}