C++ & C# Programming page
 

 

# Úvod
# Tvůrci
# C++
# C#
# Linky





Mini-seriál o grafice - 2. díl

Přichází pokračování seriálu o grafice, jako v minulém díl půjde o GDI grafiku. Přesněji se zaměříme na základní geometrické objekty - kruh, čtverec atd.
Dopředu uvedu kód:

srand( (unsigned)time( NULL ) );
HPEN pero = CreatePen(rand() % 5 - 1, 1, RGB(0, 150, 0));
HBRUSH stetec = CreateSolidBrush(RGB(0, 50, 0));
SelectObject(hdc, pero);
SelectObject(hdc, stetec);
Arc( hdc, 100,100 , 300,300 , 100,100 , 200,200 );
Ellipse(hdc, 400,100 , 600,300);
Chord(hdc, 10,10 , 100,100 , 30,10 , 100,100);
Pie(hdc, 300,10 , 400,100 , 350,10 , 300,100);
Rectangle(hdc, 700,10 , 900,400);

POINT pts[4];
pts[0].x = 10;
pts[0].y = 350;
pts[1].x = 30;
pts[1].y = 390;
pts[2].x = 500;
pts[2].y = 360;
pts[3].x = 420;
pts[3].y = 350;

Polygon(hdc, pts, 4);
DeleteObject(pero);
DeleteObject(stetec);

Pokud se někdo nesetkal s používáním náhodného čísla, tak se využívají příkazy rand a srand. Rand je již z názvu samotné generování náhodného čísla, srand je však na první pohled nejasný. Laik nemá tušení, jak vzniká náhodné číslo. Řekne si: "Noooo, procesor si vymyslí ňáké číslo a prostě má náhodu. Jasný ne?". Jenže procesor nemá abstraktní myšlení a náhodné číslo je pro něj obtížné. Jediné, co on umí, jsou výpočty. No už teď slyším, jak se většina lidí diví, čím by se tak dalo pouhým výpočtem docílit náhodného čísla, protože pokaždé musí vyjít stejný výsledek.
Počítač používá malinký podfuk. Pro základní číslo, se kterým bude "náhodu" počítat, si vezme aktuální čas nebo fázi procesoru, jednoduše číslo, které se často mění. Z něj se pak za použití různých manipulací dá získat kýžená náhoda.
Jo, málem jsem neřekl, co dělá srand. :) ... do srand se dává ona výchozí hodnota. rand by fungovalo i bez srand, jen pokaždé by bylo náhodné číslo stejné :)

Hned další řádek je použito ono náhodné číslo. V rozsahu 0 - 5 zvolí druh pera. Při každém překreslení okna se druh pera mění. Pero, anglicky pen, vykresluje u geometrických objektů okraj a štětec, neboli brush, vyplňuje vnitřek. Další možnosti jsou bitmap, pattern brush atd, to si zkuste najít sami, pokud vás to extrémně zajímá. :)
Následuje "selectování" právě vytvořených objektů, aby se projevily.

Arc vykreslí kružnici bez výplně, do opsaného obdelníku, určený vloženými souřadnicemi. Navíc máte možnost vytvořit výřez, pokud vložíte další čísla.
Ellipse je podobný kružnici, jen kreslí vyplněnou elipsu.
Chord tvoří úseč kruhu.
Pie je jako koláč od maminky :)
Rectangle už podle názvu zobrazí obdelník.
Polygon vytvoří ze zadaných bodů objekt. Musí se však ohlídat počet bodů a podobně.


No to je co se týká základů snad vše. Tento zdrojový kód se dá lehce vložit do minulého programu. Jen pro lepší vzhled, je dobré nastavit černé pozadí okna a trochu ho zvětšit, aby bylo vše vidět.



Správce sekce: Dejvino



14.2 2005

C++: pridano par odkazu na clanky o OpenGL, IRC, POP3 a BMP
14.8 2004

C++: přidán klient pro Internet Relay Chat (IRC)
11.7 2004

C++: opravil jsem zdrojak WebServeru, byla tam navic jedna funkce kterou jsem nepridal a mnoho zacatecniku by si s tim nemuselo vedet rady...
27.6 2004

Vytvořen IRC kanál #c-prog na serveru Quakenet
10.6 2004

C++: přidán program WebServer, stojí za prohlédnutí!
5.6 2004

C++: přidán článek o CheckBoxu
29.5 2004

C++: přidán program WinSock Mail
28.5 2004

C#: přidán program DNStoIP
Vaše IP je 107.20.115.174
Stránka byla načtena za 0.021 sekund.