borland_cpp_builder_cw6.pdf
(
274 KB
)
Pobierz
borland_cpp_builder_cw6
C++ Builder. Programowanie obiektowe. Ćwiczenie 6. 1
______________________________________________________________________
PROGRAMOWANIE OBIEKTOWE
ĆWICZENIE 6
C++ BUILDER 6.0 PE
Projektowanie prostych dywanów
·
Obiekt TForm
·
Obiekt TCanvas
·
Zdarzenie OnPaint
·
Typ TColor
·
Funkcja sin()
·
Funkcja RGB()
·
Właściwość TCanvas>Pixels
©2004 Jerzy Kluczewski
·
2 C++ Builder. Programowanie obiektowe. Ćwiczenie 6.
______________________________________________________________________
I. Wstęp
Wykonamy teraz piękny, wielobarwny dywan, który będzie kreślony w oknie
aplikacji.
Najpierw wygenerujmy nasz nowy projekt z pustym formularzem i zapiszmy go do
pliku
Dywan6.bpr
.
Nasz projekt plikacji zapiszemy w plikach rozpoczynających się od nazwy
Dywan6
.
Utwórz projekt aplikacji za pomocą polecenia
File
ã
New
ã
Application
Zapisz projekt aplikacji za pomocą polecenia
File
ã
Save All ...
Zapisz projekt do plików:
formularza do
Dywan6Unit1.cpp
,
·
Zmień tytuł formularza
Form1
na
Dywan6
.
______________________________________________________________________
©2004 Jerzy Kluczewski
·
głównego pliku projektu
Dywan6.bpr
C++ Builder. Programowanie obiektowe. Ćwiczenie 6. 3
______________________________________________________________________
II. Kreślenie grafiki
Zdarzenie Form1
ã
OnPaint
Zgodnie z regułami programowania, algorytm kreślenia umieszczamy w funkcji –
reakcji na zdarzenie
OnPaint
– „chcę rysować”. Daje to gwarancję, Ŝe grafika zostanie
automatycznie odświeŜona, gdy formularz aplikacji będzie uaktywniony.
Wygenerujemy teraz funkcję w
Object Inspector
:
Środowisko przechodzi automatycznie do okna kodu funkcji
TForm1::FormPaint
:
Wpisujemy kod funkcji:
{
int i,j;
TColor kolor;
for( i = 0; i < ClientWidth; i++ )
{
for( j = 0; j < ClientHeight; j++ )
{
kolor = (TColor) (i * j * 3) % 100000;
Canvas->Pixels[i][j] = kolor;
}
}
}
©2004 Jerzy Kluczewski
4 C++ Builder. Programowanie obiektowe. Ćwiczenie 6.
______________________________________________________________________
Jak działa funkcja TForm1::FormPaint ?
Deklaracja zmiennych pomocniczych:
i, j
, typu int – oznacza Ŝe zmienne te naleŜą do
zbioru liczb całkowitych.
Deklaracja zmiennej:
kolor
, typu
TColor
– oznacza Ŝe zmienna ta przechowuje rodzaj
koloru kreślonego piksela.
int i,j;
TColor kolor;
Pętla zewnętrzna
for
przesuwa współrzędną poziomą piksela od pozycji 0 do pozycji
(
ClientWidth-1
).
for( i = 0; i < ClientWidth; i++ )
UWAGA:
Zmienne
ClientWidth
,
ClientHeight
określają rozpiętość powierzchni graficznej
okienka (rozdzielczość wewnętrzna formularza
From1
). Z kolei zmienne
Width
,
Height
oznaczają rozpiętość zewnętrzną okna (formularza), a więc razem z jego ramką
i paskiem tytułu.
Pętla wewnętrzna
for
przesuwa współrzędną pionową piksela od pozycji 0 do pozycji
(
ClientWidth-1
).
for( j = 0; j < ClientHeight; j++ )
Przed kreśleniem kaŜdego piksela określany jego kolor za pomocą wzoru:
kolor = (TColor) (i * j * 3) % 100000;
Napis powoduje konwersję typu
int
na typ
TColor
natomiast operator
%
oblicza
jedynie wartość całkowitą ilorazu..
Operacja następna wstawia do tablicy pikseli
Pixels
znajdujących się w obiekcie
Canvas
, odpowiedni kod koloru :
Canvas->Pixels[i][j] = kolor;
Teraz nadszedł czas na przetestowanie naszej aplikacji:
Uruchom ją za pomocą polecenia
Run
ã
Run (F9)
______________________________________________________________________
©2004 Jerzy Kluczewski
C++ Builder. Programowanie obiektowe. Ćwiczenie 6. 5
______________________________________________________________________
Wygląd okna aplikacji
Po uruchomieniu nasze okno wygląda następująco:
III. Wzbogacanie naszej aplikacji
Tworzenie ekranowego koloru
Tak naprawdę tworzenie kaŜdego koloru na ekranie polega na wybieraniu amplitudy
trzech składowych:
Red
– czerwonej,
Green
– zielonej,
Blue
– niebieskiej.
Aby wykorzystać tę metodę, do dyspozycji mamy funkcję
RGB()
.
Składnia tej funkcji wygląda następująco:
TColor
RGB(
int r, int g , int b
)
©2004 Jerzy Kluczewski
Plik z chomika:
milusik
Inne pliki z tego folderu:
borland_cpp_builder_cw13.pdf
(399 KB)
borland_cpp_builder_cw12.pdf
(554 KB)
borland_cpp_builder_cw11_algorytm.pdf
(47 KB)
borland_cpp_builder_cw11.pdf
(290 KB)
borland_cpp_builder_cw10.pdf
(262 KB)
Inne foldery tego chomika:
kursy borland
Zgłoś jeśli
naruszono regulamin