La géométrie s'est également s'amuser à faire des dessins à l'apparence mathématique. Un des classiques dans ce genre, c'est bien sûre dessiner un «Treillis». Voici le code C pour OS/2 (MinGW) :
- #define INCL_WIN
- #define INCL_GPI
- #include "os2.h"
-
- MRESULT EXPENTRY CrtWinProc( HWND Window, USHORT message, MPARAM wParameter, MPARAM lParameter) {
- POINTL ptl;
- HPS ps;
- RECTL rcl;
- int X,Y,T,I;
- switch(message) {
- case WM_PAINT:
- ps = WinBeginPaint(Window, NULL, NULL);
- WinQueryWindowRect(Window, &rcl);
- WinFillRect(ps, &rcl, CLR_WHITE);
- X = 30;
- Y = 40;
- T = 240;
- I = 0;
- while(I < T) {
- ptl.x = X;
- ptl.y = 300 - (Y + I);
- GpiMove(ps,&ptl);
- ptl.x = X + I;
- ptl.y = 300 - (Y + T);
- GpiLine(ps,&ptl);
- I+=5;
- }
- WinEndPaint(ps);
- return(0);
- }
- return WinDefWindowProc(Window, message, wParameter, lParameter);
- }
-
- int main(void) {
- HWND hWind;
- HMQ hMessageQueue;
- HAB AnchorBlock;
- ULONG style = FCF_TITLEBAR | FCF_SYSMENU | FCF_SIZEBORDER | FCF_MINMAX | FCF_SHELLPOSITION | FCF_TASKLIST;
- QMSG message;
- HWND WinHandle;
- AnchorBlock = WinInitialize(0);
- if(AnchorBlock == 0) return 0;
- hMessageQueue = WinCreateMsgQueue( AnchorBlock, 0);
- if(hMessageQueue == 0) return 0;
- if( !WinRegisterClass( AnchorBlock, "SimpleTreillis", (PFNWP)CrtWinProc, CS_SIZEREDRAW, 0 ) ) return( 0 );
- hWind = WinCreateStdWindow( HWND_DESKTOP, WS_VISIBLE, &style, "SimpleTreillis", "Treillis", 0, NULL, 0, &WinHandle);
- if(hWind == 0) return 0;
- while(WinGetMsg(AnchorBlock, &message, NULL, 0, 0)) WinDispatchMsg(AnchorBlock, &message);
- WinDestroyWindow(hWind);
- WinDestroyMsgQueue(hMessageQueue);
- WinTerminate(AnchorBlock);
- return(1);
- }
Voici en terminant un exemple du résultat de se petit programme :
Voir également
Langage de programmation - C pour Windows - API Windows (Win32) - Géométrie - Treillis
Langage de programmation - Turbo Pascal pour Windows (Windows 3.1) - Géométrie - Treillis
Système d'exploitation - OS/2 - Introduction
Dernière mise à jour : Vendredi, le 3 avril 2015