wyc6 ZI

background image

Grafika

Grafika

komputerowa

komputerowa

background image

(

0

,

0

)

(

639

,

479

)

Układ współrzędnych w trybie

graficznym

background image

Strony karty graficznej

Strony karty graficznej

VGA

VGA

:

VGALO

-

640200

pkt.,

16

kolorów,

4

strony

graficzne;

VGAMED

-

640350

pkt.,

16

kolorów,

2

strony

graficzne;

VGAHI

-

640480

pkt.,

16

kolorów,

1

strona

graficzna.

background image

Stałe oznaczania kolorów:

nazwa

kod

BLACK

= 0;

// czarny

BLUE

= 1;

// niebieski

GREEN

= 2;

// zielony

CYAN

= 3;

// turkusowy

RED

= 4;

// czerwony

MAGENTA

= 5;

// karmazynowy

BROWN

= 6;

// brązowy

LIGHTGRAY = 7;

// jasnoszary

DARKGRAY = 8;

// ciemnoszary

LIGHTBLUE = 9;

// jasnoniebieski

LIGHTGREEN= 10;

// jasnozielony

LIGHTCYAN = 11;

// jasnoturkusowy

LIGHTRED

= 12;

// jasnoczerwony

LIGHTMAGENTA

=

13;

//

jasnokarmazynowy

YELLOW

= 14;

// żółty

WHITE

= 15;

// biały

background image

Stałe

oznaczania

kolorów

mogą

być

wykorzystane np. w procedurach ustalających

kolor pierwszoplanowy

i

kolor tła

:

setcolor

(YELLOW);

// kolor

pierwszoplanowy - żółty

setbkcolor

(BLUE);

// kolor tła - niebieski

background image

Stałe określania rodzaju i

grubości linii:

nazwa

kod

SOLID_LINE

= 0;

// linia ciągła

DOTTED _LINE = 1;

// linia kropkowana

CENTER _LINE = 2;

// linia symetrii

DASHED _LINE = 3;

// linia przerywana

USERBIT _LINE = 4;

// linia def. przez

programistę

NORM_WIDTH = 1;

// linia o grubości

pojedynczej

THICK_WIDTH = 3;

// linia o potrójnej

grubości

Stałe te są używane w procedurze

setlinestyle

określającej sposób rysowania linii.

background image

Stałe wzorów wypełniających kontury:

nazwa

kod

EMPTY_FILL

= 0;

// wypełnianie w

kolorze tła

SOLID _FILL

= 1;

// wypełnianie w kol.

pierwszopl.

LINE _FILL

= 2;

// linie poziome

LTSLASH _FILL =3;

// linie ukośne cienkie

SLASH _FILL

= 4;

// linie ukośne pogrubione

BKSLASH _FILL = 5;

// linie ukośne prawostr.

pogrub.

LTBKSLASH _FILL = 6;

// linie ukośne prawe;

ciemne tło

HATCH _FILL

= 7;

// siatka prostokątna

XHATCH _FILL = 8;

// siatka ukośna

INTERLEAVE _FILL = 9;

// linie pionowe; ciemne

tło

WIDEDOT _FILL

= 10;

// kropki rzadkie

CLOSEDOT _FILL

= 11;

// kropki gęste

USER _FILL

= 12;

// wzór def. przez

programistę

background image

Stałe wzorów wypełniających kontury
służą do określania sposobu wypełniania
konturów. Są one wykorzystywane w
procedurze

setfillstyle.

Stała

USER_FILL

oznacza wypełnienie

konturów wzorem definiowanym przez
programistę za pomocą procedury

setfillpattern

.

background image

Stałe krojów pisma:

nazwa

kod

DEFAULF_FONT

=

0

;

TRIPLEX _FONT

=

1

;

SMALL _FONT

=

2

;

SANSSERIF _FONT =

3

;

GOTHIC _FONT

=

4

;

SCRIPT_FONT

=

5

;

SIMPLEX_FONT

=

6

;

TRIPLEX_SCR_FONT

=

7

;

COMPLEX_FONT

=

8

;

EUROPEAN_FONT =

9

;

BOLD_FONT

=

10

;

Podane stałe są wykorzystywane w
procedurze

settextstyle

.

background image

Stałe kierunku wyprowadzania

tekstów

:

nazwa kod

HORIZ_DIR

=

0

;

// poziomo od strony
// lewej do prawej

VERT_DIR

=

1

;

// pionowo z góry na

dół

Dozwolone są kroje o rozmiarach od

1

do

10

.

background image

Stałe justowania tekstu w poziomie i

pionie:

nazwa

kod

CENTER_TEXT

= 1;

// centrowanie tekstu

LEFT _TEXT

= 0;

// równanie w poziomie do

lewej

RIGTH _TEXT = 2;

// równ. w poziomie do prawej

BOTTOM _TEXT = 0;

// wyrównanie w pionie do

dołu

TOP _TEXT

= 2;

// wyrównanie w pionie do

góry

Stałe te są wykorzystywane w procedurze

settextjustify

.

Domyślnie

wyprowadzany

tekst

jest

wyrównywany w

poziomie do lewej

i w

pionie

do dołu

.

background image

Wybrane procedury i funkcje pliku

Wybrane procedury i funkcje pliku

graphics.h

:

1.

Rozdzielczość

karty

graficznej:

getmaxx

( )

-

funkcja zwraca rozdzielczość

karty graficznej względem

osi X

;

getmaxy

( )

-

funkcja zwraca rozdzielczość

karty graficznej względem

osi Y

.

getx

( )

-

funkcja zwraca aktualną

współrzędną X

kursora;

gety

( )

-

funkcja zwraca aktualną

współrzędną Y

kursora;

moveto (X,Y)

-

procedura przesuwa kursor do

punktu ekranu

o współrzędnych (

X,Y

);

moverel (dX, dY)

-

procedura przesuwa kursor

graficzny do

punktu ekranu o współrzędnych

zmienionych w

stosunku do aktualnych

odpowiednio o

dX

i

dY

.

2. Kursor
graficzny:

background image

Przykład:

moveto (50, 130);

// ustawienie kursora graficznego w

// punkcie o współrzędnych (

50, 130

)

moverel (60, 25);

// przesunięcie kursora graficznego z

// punktu o współrzędnych (

50, 130

)

// do punktu o współrzędnych (

110, 155

)

background image

3. Teksty w trybie
graficznym.

settextstyle

(

czcionka,

kierunek,

rozmiar

) -

styl tekstu

;

settextjustify

(

poziom, pion

) -

wyrównanie

tekstu

;

outtext

(

łańcuch_znaków

) -

wyprowadzenie

podanego ciągu znaków
poczynając od aktualnej pozycji kursora

;

outtextxy

(

X, Y, łańcuch_znaków

) -

wyprowadzenie

podanego łańcucha

znaków poczynając od punktu (

X, Y

).

Przykła
dy:

settextstyle

(

SANSSERIF_FONT, HORIZ_DIR,

5

)

settextjustify

(

CENTER_TEXT,

TOP_TEXT

)

background image

Przykłady:

outtextxy

(

320, 160,

"Ala ma kota "

);

Ala ma kota

320

160

background image

settextjustify

(

RIGHT_TEXT

,

TOP_TEXT

);

outtextxy

(

320

,

160

,

" Ala ma kota "

);

Ala ma kota

320

160

background image

settextjustify

(

CENTER_TEXT

,

CENTER_TEXT

);

outtextxy

(

320

,

160

,

" Ala ma kota "

);

Ala ma kota

320

160

background image

4. Struktura linii

setlinestyle

(

rodzaj_linii

,

wzór

,

grubość

)

Procedura określa rodzaj linii i jej grubość.
Wszystkie parametry muszą być typu całkowitego.
Parametr

wzór

jest istotny tylko w przypadku, gdy

rozdaj linii jest określony przez stałą

USERBIT_LINE

. W przeciwnym przypadku może

przyjmować dowolną wartość typu całkowitego.
Jeżeli linia jest definiowana przez programistę
(parametr

wzór

jest równy stałej

USERBIT_LINE

),

to na ekranie będą wyświetlone tylko te punkty
linii, które odpowiadają bitom o wartości

1

.

background image

5. Kreślenie figur

linerel

(

dX

,

dY

);

// kreślenie linii prostej

łączącej

// punkt o aktualnych

//

współrzędnych

z

punktem,

// którego współrzędne

różnią się od

// aktualnych o

dX

i

dY

a). Linia prosta

line

(

x1

,

y1

,

x2

,

y2

)

// kreślenie linii

prostej łączącej

// punkty o współrzędnych

(

x1, y1

)

// i (

x2, y2

)

lineto

(

x

,

y

);

// kreślenie linii prostej

łączącej

// punkt o aktualnych

współrzędnych

// z punktem (

x, y

)

background image

Współrzędne punktów muszą być sekwencją par
liczb całkowitych odpowiadających współrzędnym

x

oraz

y

kolejnych wierzchołków wieloboku.

b). Prostokąt

rectangle

(

x1, y1, x2, y2

);

// (

x1, y1

) -

współrzędne

// lewego górnego

narożnika

// prostokąta, natomiast

(

x2, y2

)

// są to współrzędne

prawego

// dolnego narożnika

prostokąta

c). Wielobok

drawpoly

(

Liczba_Punktów

,

Współrzędne_Punktów

);

// liczba punktów musi być o

1

większa

// od liczby wierzchołków wieloboku

background image

arc

(x, y, , , r);

// rysowanie łuku okręgu o

promieniu

r

,

// którego środek znajduje się w

punkcie

//

(x, y)

;

- kąt początkowy

łuku;

- kąt

// końcowy łuku.

d). Okrąg

circle

(

x, y, r

);

// rysowanie okręgu o promieniu

r

,

// którego środek znajduje

się w punkcie

//

(x,y)

e). Łuk okręgu

background image

setfillpattern

(

Wzór_Definiowany,

Kolor_Wzoru

);

// wzór definiowany jest

wzorcem 88 piks.

Wyspecyfikowanym wzorem wypełnia się figury
zamknięte:

f). Wypełnianie konturów
zamkniętych

setfillstyle

(

wzór

,

kolor

)

// określenie wzoru wypełniającego kontur;

kolor

- jest

// kolorem wzorca

C++

oferuje

12

wzorów standardowych (patrz

stałe wypełnień) oraz wzór programisty

USER_FILL

. Użycie wzoru

USER_FILL

wymaga zdefiniowania wzoru za pomocą
procedury:

background image

bar3d

(

x1

,

y1

,

x2

,

y2

,

h

,

góra

);

// słupek trójwymiarowy;
//

x1

,

y1

- współrzędne lewego

górnego


// narożnika płaszczyzny czołowej

słupka;

//

x2

,

y2

- współrzędne prawego

dolnego

// narożnika płaszczyzny czołowej

słupka;

//

h

- głębokość;

góra

- parametr typu

//

int

; wartość niezerowa parametru

powoduje

// zaznaczenie płaszczyzny górnej

bar

(

x1

,

y1

,

x2

,

y2

);

// prostokąt wypełniony;
//

x1

,

y1

- współrzędne lewego

górnego

// narożnika;

x2

,

y2

- współrzędne

// prawego dolnego narożnika

background image

fillellipse

(

x

,

y

,

półośX

,

półośY

)

// wypełniona elipsa ze środkiem
// w punkcie

x,y

;

fillpoly

(

Liczba_Punktów

,

Współrzędne_Punktów

)

// wielobok wypełniony

pieslice

(

x

,

y

,

,

,

r

)

// wypełniony wycinek kołowy

background image

6. Okna w trybie graficznym

setviewport

(

x1

,

y1

,

x2

,

y2

,

obcięcie

)

// otwarcie okna graficznego;

//

x1

,

y1

- współrzędne lewego górnego

// narożnika okna;

x2

,

y2

- współrzędne

// prawego dolnego narożnika okna;

//

obcięcie

- parametr typu

int

- jeśli jest

// niezerowe, to rysunek jest przycinany
// do rozmiarów okna

clearviewport

( )

//

czyszczenie

aktualnego

okna

graficznego

cleardevice

( )

// czyszczenie urządzenia graficznego

background image

7. Przełączanie stron graficznych

setactivepage

(

Strona

)

//

uczynienie

strony

podanej

jako

parametr

// stroną aktywną

setvisualpage

(

Strona

)

//

uczynienie

strony

podanej

jako

parametr

// stroną widoczną;

// parametr

Strona

jest typu

int

background image

8. Przełączanie trybów pracy monitora

restorecrtmode

()

// przełączenie się z trybu graficznego

// na tryb tekstowy

setgraphmode

(

Tryb

)

//

powrót

do

podanego

trybu

graficznego

background image

9. Działania na obrazach

a). Określenie rozmiarów obrazu:

imagesize

(

x1

,

y1

,

x2

,

y2

)

// określenie rozmiarów obrazu
// prostokątnego;

x1

,

y1

- współrzędne

// lewego górnego narożnika;

//

x2

,

y2

- współrzędne prawego dolnego

// narożnika

b). Zapamiętanie obrazu:

getimage

(

x1

,

y1

,

x2

,

y2

,

obraz

)

//

x1

,

y1

,

x2

,

y2

- parametry muszą być

// takie same jak w

imagesize

;

//

obraz

- wskaźnik do obszaru pamięci,

// w którym przechowywany jest obraz

background image

c). Wywołanie obrazu na ekranie

putimage

(

x

,

y

,

obraz

,

operacja

)

//

x

,

y

- współrzędne lewego górnego

// narożnika obrazu na ekranie;

//

obraz

- wskaźnik;

//

operacja

- działanie wykonywane na

// odpowiadających sobie punktach

// ekranu oraz wyprowadzanego na ten

// ekran obrazu

Parametr

operacja

może przyjmować wartość

jednej ze stałych:

COPY_PUT

(0)

XOR _PUT

(1)

OR _PUT

(2)

AND _PUT

(3)

NOT _PUT

(4)

background image

10. Otwieranie i zamykanie trybu graficznego

detectgraph

(

Sterownik

,

Tryb

)

// określenie sterownika karty graficznej

// i trybu pracy tej karty;

//

Sterownik

i

Tryb

- zmienne typu

int

initgraph

(

Sterownik

,

Tryb

,

Ścieżka

)

// zainicjowanie trybu graficznego;

//

Ścieżka

- jest łańcuchem znaków,

// który określa ścieżkę dostępu do

// sterownika karty graficznej (plik typu

//

.BGI

)

closegraph

( )

// zamknięcie trybu graficznego

background image

Jeszcze raz o myśleniu

Jeszcze raz o myśleniu

rekurencyjnym

rekurencyjnym

Narysuj spiralę:

delta

delta

dl

background image

(x, y)

(x’, y’)

idea rysowania rekurencyjnego:

idea rysowania rekurencyjnego:

(prog.

SPIRALA.CPP

)


Document Outline


Wyszukiwarka

Podobne podstrony:
Badanie emisji silnika o zapłonie ZI, Silniki Spalinowe i ekologia
Charakterystyka eksploatacyjna ZI (2)
Spalanie w silnikach ZI, ZS Doładowanie silników
Zi 58 id 590103 Nieznany
Diagnostyka silnika o ZI (czujnik ciśnienia sprężania)
Charakterystyka eksploatacyjna ZI
Silnik ZI- daro
MSP PRZEWODNIK 10 11 ZI   ĘBA
Культура спiлкування
GEO, Grzegorz Zi˙˙kowski
KompSysZarzIster w+c Log ZI, Szkoła, MZ
WYC6 PPT
krs form zi
ZI 58Cab

więcej podobnych podstron