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 Turbo Pascal pour Windows:

  1. Program Treillis;
  2.  
  3. Uses WinProcs, WinTypes;
  4.  
  5. Const
  6.  CrtWindow: HWnd = 0;
  7.  
  8. Var
  9.  PS: TPaintStruct;
  10.  Message: TMsg;
  11.  
  12. Function CrtWinProc(Window: HWnd; Message, WParam: Word; LParam: LongInt): LongInt;Export;
  13. Var
  14.  X,Y,T,I:Integer;
  15.  DC: HDC;
  16. Begin
  17.  CrtWinProc := 0;
  18.  CrtWindow := Window;
  19.  Case Message of
  20.   wm_Paint:Begin
  21.    DC := BeginPaint(Window, PS);
  22.    X := 30;
  23.    Y := 40;
  24.    T := 240;
  25.    I := 0;
  26.    While(I < T) do Begin
  27.     MoveTo(DC,X, Y + I);
  28.     LineTo(DC,X + I, Y + T);
  29.     Inc(i,5);
  30.    End;
  31.    EndPaint(Window, PS);
  32.   End;
  33.   wm_Destroy: PostQuitMessage(0);
  34.   Else CrtWinProc := DefWindowProc(Window, Message, WParam, LParam);
  35.  End;
  36. End;
  37.  
  38. Const
  39.  CrtClass: TWndClass = (
  40.   style: cs_HRedraw + cs_VRedraw;
  41.   lpfnWndProc: @CrtWinProc;
  42.   cbClsExtra: 0;
  43.   cbWndExtra: 0;
  44.   hInstance: 0;
  45.   hIcon: 0;
  46.   hCursor: 0;
  47.   hbrBackground: 0;
  48.   lpszMenuName: NIL;
  49.   lpszClassName: 'TPWDraw'
  50.  );
  51.  
  52. BEGIN
  53.  If HPrevInst = 0 Then Begin
  54.   CrtClass.hInstance := HInstance;
  55.   CrtClass.hIcon := LoadIcon(0, idi_Application);
  56.   CrtClass.hCursor := LoadCursor(0, idc_Arrow);
  57.   CrtClass.hbrBackground := color_Window + 1;
  58.   RegisterClass(CrtClass);
  59.  End;
  60.  CrtWindow := CreateWindow(
  61.   CrtClass.lpszClassName,
  62.   'Dessin Trellis',
  63.   ws_OverlappedWindow + ws_HScroll + ws_VScroll,
  64.   cw_UseDefault, cw_UseDefault,
  65.   cw_UseDefault, cw_UseDefault,
  66.   0,0,
  67.   HInstance,
  68.   NIL
  69.  );
  70.  ShowWindow(CrtWindow, CmdShow);
  71.  UpdateWindow(CrtWindow);
  72.  While GetMessage(Message, 0, 0, 0) do Begin
  73.   TranslateMessage(Message);
  74.   DispatchMessage(Message);
  75.  End;
  76. END.

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

Dernière mise à jour : Dimanche, le 10 décembre 2017