/* * header file for transformed coordinate system. No rotations * supported, as elipses cannot be rotated in X. */ typedef struct _transform { double mx, bx; double my, by; } Transform; typedef struct _TPoint { double x, y; } TPoint; typedef struct _TRectangle { double x, y, width, height; } TRectangle; # define Xx(x,y,t) ((int)((t)->mx * (x) + (t)->bx + 0.5)) # define Xy(x,y,t) ((int)((t)->my * (y) + (t)->by + 0.5)) # define Xwidth(w,h,t) ((int)((t)->mx * (w) + 0.5)) # define Xheight(w,h,t) ((int)((t)->my * (h) + 0.5)) # define Tx(x,y,t) ((((double) (x)) - (t)->bx) / (t)->mx) # define Ty(x,y,t) ((((double) (y)) - (t)->by) / (t)->my) # define Twidth(w,h,t) (((double) (w)) / (t)->mx) # define Theight(w,h,t) (((double) (h)) / (t)->my)