1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| void transfAffine(v1x0,v1y0,v1x1,v1y1,v2x0,v2y0,v2x1,v2y1,v3x0,v3y0,v3x1,v3y1)
{
double v1x2,v1y2=(v1x0-(v1y1-v1y0)),(v1y0+(v1x1-v1x0))
double v2x2,v2y2=(v2x0-(v2y1-v2y0)),(v2y0+(v2x1-v2x0))
double v3x2,v3y2=(v3x0-(v3y1-v3y0)),(v3y0+(v3x1-v3x0))
double det = (v2y1 - v2y0)*(v2x2 - v2x0)-(v2y2 - v2y0)*(v2x1 - v2x0);
double c1 = ((v2x2 - v2x0)*(v1y0 - v2y0)-(v2y2 - v2y0)*(v1x0 - v2x0))/det;
double c2 = ((v2y1 - v2y0)*(v1x0 - v2x0)-(v2x1 - v2x0)*(v1y0 - v2y0))/det;
double d1 = ((v2x2 - v2x0)*(v1y1 - v2y0)-(v2y2 - v2y0)*(v1x1 - v2x0))/det;
double d2 = ((v2y1 - v2y0)*(v1x1 - v2x0)-(v2x1 - v2x0)*(v1y1 - v2y0))/det;
x0 = v3x0 + c1*(v3x1 - v3x0)+c2*(v3.x2 - v3x0);
y0 = v3y0 + c1*(v3y1 - v3y0)+c2*(v3.y2 - v3y0);
x1 = v3x0 + d1*(v3x1 - v3x0)+d2*(v3.x2 - v3x0);
y1 = v3y0 + d1*(v3y1 - v3y0)+d2*(v3.y2 - v3y0);
} |
Partager