background image

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 ? 

  
 
 
 
 
 
 
 
 
 
 
 
 

background image

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
 

 

 

 

 
 
 

background image

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); 
        } 
}
 
 
 
 
 

background image

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: