#define DB (double) typedef struct { double x,y; } XY; // Define o padrao de coordenadas ao qual se mapeiam os pontos. typedef struct { int u0, v0, // canto superior esquerdo tam_u, tam_v; // canto inferior direito }PADRAO; // Representa os 4 pontos que definem um quadrilatero. typedef struct { int x0,y0, // sup. esq. x1,y1, // sup. dir. x2,y2, // inf. dir. x3,y3; // inf. esq. } QUADRI; static void inverte(int eh_afim); static void define_padrao(void); static void calcula_matriz(QUADRI *pol); static double M[4][4]; /* Matriz de transformacao inversa, ou seja, */ /* Original = Distorcida * M */ static double A[4][4]; /* Matriz de transformacao direta, ou seja, */ /* Distorcida = Original * A */ static PADRAO padrao;