C++ Builder. Programowanie obiektowe. Ćwiczenie 7.                                                 1 
______________________________________________________________________ 
 
©2004 Jerzy Kluczewski
 
 
 
 
 
 
 
 
 
 
PROGRAMOWANIE OBIEKTOWE
ĆWICZENIE 7
 
 
 
 
C++ BUILDER 6.0 PE
 
 
•
Grafika rozpinanej nici
•
Obiekt TForm
•
Obiekt TCanvas
•
Właściwość Canvas->Pen->Color
•
Metoda TCanvas->MoveTo
•
Metoda TCanvas->LineTo
•
Liczba pi (stała M_PI)
•
Operator ?
  
 
 
 
 
 
 
 
 
 
 
 
 
2
C++ Builder. Programowanie obiektowe. Ćwiczenie 7.
______________________________________________________________________
______________________________________________________________________ 
 
©2004 Jerzy Kluczewski
I.
Wstęp
Wykonamy teraz piękny, wielobarwny dywan, który będzie kreślony w oknie
aplikacji. Nasz projekt aplikacji zapiszemy w plikach rozpoczynających się od nazwy 
Nici7. Zmień tytuł formularza Form1 na Grafika rozpinanej nici. 
II.
Kreślenie grafiki
Określenie tła okna
 
Kreślenie grafiki wykonamy na czarnym formularzu. 
 
Zmieniamy więc właściwość Color w Object Inspector na clBlack. 
 
 
 
 
C++ Builder. Programowanie obiektowe. Ćwiczenie 7.                                                 3 
______________________________________________________________________ 
 
©2004 Jerzy Kluczewski
 
 
Zdarzenie OnPaint
 
Przechodzimy do projektowania zdarzenia OnPaint, a potem do okna kodu funkcji 
TForm1::FormPaint : 
 
 
 
Wpisujemy kod funkcji: 
 
 
double t, x1, x2, y1, y2, R, A, B; 
R = ClientWidth / 2; 
A = ClientWidth / 2; 
B = ClientHeight / 2; 
 
for (t = - M_PI; t < M_PI; t += M_PI/200) 
        { 
        x1 = R * sin( t ) * cos ( t ); 
        y1 = R * cos( t ); 
        x2 = -R * sin( t ) * cos ( t ); 
        y2 = -R * cos( t ); 
 
        Canvas->Pen->Color = (t < M_PI/2 ? clBlue : clRed); 
        Canvas->MoveTo( x1 + A, y1 + B); 
        Canvas->LineTo( x2 + A, y2 + B); 
 
        x1 = R * sin( t ); 
        y1 = R * cos( t ) * sin( t ); 
        x2 = -R * sin( t ); 
        y2 = -R * cos( t ) * sin ( t ); 
 
        Canvas->Pen->Color = (t < M_PI/2 ? clWhite : clAqua); 
        Canvas->MoveTo( x1 + A, y1 + B); 
        Canvas->LineTo( x2 + A, y2 + B); 
        } 
} 
 
 
 
 
4
C++ Builder. Programowanie obiektowe. Ćwiczenie 7.
______________________________________________________________________
______________________________________________________________________ 
 
©2004 Jerzy Kluczewski
III.
Uruchomienie naszej aplikacji
Uruchomienie aplikacji
 
 
Uruchom ją za pomocą polecenia Run
Run (F9)
Wygląd okna aplikacji
 
Po uruchomieniu nasze okno wygląda następująco: