/**************/ /* mitta.c */ /****************************************************************************/ /* ** Malliohjelma koordinaatistomuunnoksista. ** Piirretään muutama suorakaide ja niiden lävistäjä ** Vesa Lappalainen 4.9.1992 ** ** Kääntäminen: ** Tee projektio kolmiomt.prj: ** kolmiomt.c ** mitta.c ** tulostus.def ** ALI\... ** ** Tehtäviä 1) Kokeile eri muunnoksia. ** ** 2) Tutki SetWindowOrg vaikutusta ** ** 3) Tutki SetViewportOrg vaikutusta ** ----------------------------------------------------------------------------*/ #include #define KOKO 800 #define I(x,y) hdc,((int)(x)),((int)(y)) /****************************************************************************/ void Nelio(HDC hdc, double o,double k) /* Piirretään neliö, joka alkaa paikasta (o,o) ja on k korkea. ** lisäksi piirretään neliölle kaksi lävistäjää */ { double h = o + k; MoveTo(I(o,o)); LineTo(I(o,h)); LineTo(I(h,h)); LineTo(I(h,o)); LineTo(I(o,o)); LineTo(I(h,h)); LineTo(I(h,o)); LineTo(I(o,h)); } /****************************************************************************/ void Suorakaide(HDC hdc, double o,double x,double y) /* Piirretään suorakaide ja sen lävistäjät. ** Alkaa paikasta (o,o) ja leveyttä x ja korkeutta y. */ { double xh = o + x; double yh = o + y; MoveTo(I(o,o)); LineTo(I(o,yh)); LineTo(I(xh,yh)); LineTo(I(xh,o)); LineTo(I(o,o)); LineTo(I(xh,yh)); LineTo(I(xh,o)); LineTo(I(o,yh)); } /****************************************************************************/ void MyDraw(HWND hWnd,HDC hDC) { #pragma argsused SetMapMode(hDC,MM_LOMETRIC); SetWindowOrg(hDC,0,300); SetViewportOrg(hDC,0,300); Nelio(hDC,0,KOKO); Nelio(hDC,20,200); Suorakaide(hDC,20,KOKO-40,30); TextOut(hDC,20,20,"Terve!",6); }