Section courante

A propos

Section administrative du site

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 Windows (MinGW) :

  1. #include <windows.h>
  2.  
  3. LRESULT CALLBACK CrtWinProc(HWND Window, UINT message, WPARAM wParameter, LPARAM lParameter)
  4. {
  5.     switch (message)
  6.     {
  7.         case WM_PAINT:
  8.             PAINTSTRUCT PS;
  9.             LPPOINT pPoint;
  10.             int X,Y,T,I;
  11.             HDC DC;
  12.             DC = BeginPaint(Window, &PS);
  13.             X = 30;
  14.             Y = 40;
  15.             T = 240;
  16.             I = 0;
  17.             while(I < T) {
  18.                 MoveToEx(DC,X, Y + I,pPoint);
  19.                 LineTo(DC,X + I, Y + T);
  20.                 I+=5;
  21.             }
  22.             EndPaint(Window, &PS);
  23.             break;
  24.         case WM_DESTROY:
  25.             PostQuitMessage (0);
  26.             break;
  27.         default:
  28.             return DefWindowProc (Window, message, wParameter, lParameter);
  29.     }
  30.     return 0;
  31. }
  32.  
  33. int WINAPI WinMain (HINSTANCE hThisInstance, HINSTANCE hPrevInstance, LPSTR lpszArgument, int nCmdShow) {
  34.     HWND hwnd;
  35.     MSG messages;
  36.     WNDCLASSEX wincl;
  37.     char szClassName[ ] = "DrawTreillis";
  38.  
  39.     wincl.hInstance = hThisInstance;
  40.     wincl.lpszClassName = szClassName;
  41.     wincl.lpfnWndProc = CrtWinProc;
  42.     wincl.style = CS_DBLCLKS;
  43.     wincl.cbSize = sizeof (WNDCLASSEX);
  44.     wincl.hIcon = LoadIcon (NULL, IDI_APPLICATION);
  45.     wincl.hIconSm = LoadIcon (NULL, IDI_APPLICATION);
  46.     wincl.hCursor = LoadCursor (NULL, IDC_ARROW);
  47.     wincl.lpszMenuName = NULL;
  48.     wincl.cbClsExtra = 0;
  49.     wincl.cbWndExtra = 0;
  50.     wincl.hbrBackground = (HBRUSH) COLOR_BACKGROUND;
  51.  
  52.     if (!RegisterClassEx (&wincl)) return 0;
  53.  
  54.     hwnd = CreateWindowEx(
  55.            0,
  56.            szClassName,
  57.            "Dessin Treillis",
  58.            WS_OVERLAPPEDWINDOW,
  59.            CW_USEDEFAULT,
  60.            CW_USEDEFAULT,
  61.            544,
  62.            375,
  63.            HWND_DESKTOP,
  64.            NULL,
  65.            hThisInstance,
  66.            NULL
  67.            );
  68.  
  69.     ShowWindow (hwnd, nCmdShow);
  70.  
  71.     while (GetMessage (&messages, NULL, 0, 0))
  72.     {
  73.         TranslateMessage(&messages);
  74.         DispatchMessage(&messages);
  75.     }
  76.     return messages.wParam;
  77. }

Voici en terminant un exemple du résultat de se petit programme :

Voir également

Langage de programmation - Turbo Pascal pour Windows (Windows 3.1) - Géométrie - Treillis

Dernière mise à jour : Dimanche, le 6 décembre 2015