předchozí lekce (1.06) | obsah kurzu | následující lekce (1.08) |
Činnost grafického okna je možné si představit jako malířské plátno definovaných rozměrů, na které se kreslí perem (anglicky pen). Větší plochy je možné vybarvit štětcem (anglicky brush). Kreslí se přitom vždy nastavenou barvou. Systém obsahuje povely pro nastavení parametrů pera i štětce. S možnostmi se seznámíte v následujícím textu.
Při kreslení obrazců do grafického okna se kreslí obrazce čárou, jejíž typ je definován povelem ImagePenStyle a tloušťka čáry je definována povelem ImagePenWidth. Plocha nakreslených geometrických obrazců je vyplněna stylem zadaným povelem ImageBrushStyle.
Nejjednodušší je změna tloušťky čáry, kdy uvádíte přímo jako parametr povelu
tloušťku čáry v bodech. Pro změnu tloušťky čáry na pět bodů použijete z příkazového okna
následující povel:
ImagePenWidth(5)
Všimněte si, že pokud nastavíte sílu čáry povelem z příkazového okna, použije se
nastavená síla čáry i pro následné kreslení pomocí myši přímo v grafickém okně.
Obdobná vlastnost je platná i pro nastavení všech parametrů grafického okna. Máte
proto možnost libovolně kombinovat zadávaní povelů z příkazového okna nebo jejich
nastavení pomocí ikon. V budoucnu budete mít samozřejmě možnost uvedené
parametry nastavit i přímo z programu.
Styl čáry máte možnost zadávat povelem ImagePenStyle. Předdefinováno je šest
stylů. Jako parametr povelu musíte přitom zadat definovaný styl čáry. Parametr můžete
uvést buď číselnou hodnotou, nebo jménem konstanty dle následující tabulky:
---------------------------------------------------------
hodnota konstanta název stylu
---------------------------------------------------------
1 psSolid souvislá čára
2 psDash přerušovaná čára
3 psDot tečkovaná čára
4 psDashDot čerchovaná čára
5 psDashDotDot čerchovaná čára se dvěma tečkami
6 psClear neviditelná čára
---------------------------------------------------------
Příklady použití definice stylu čáry (text mezi složenými závorkami nemusíte psát,
jedná se o poznámku):
ImagePenStyle(1) 'souvislá plná čára
ImagePenStyle(3) 'tečkovaná čára
ImagePenStyle(6) 'neviditelná čára
ImagePenStyle(psSolid) 'souvislá plná čára
ImagePenStyle(psDot) 'tečkovaná čára
ImagePenStyle(psClear) 'neviditelná čára
Existuje samozřejmě i způsob nastavení barvy čáry. Nejprve se však budeme muset
seznámit s možnostmi použití barev v počítači. Zobrazování barev závisí na vlastnostech
videokarty ve vašem počítači. Používáte-li barevnou VGA kartu, máte možnost zobrazit
minimálně 16 barev. Po příslušném nastavení videoadaptéru je možné běžně
zobrazovat 256 barev, výjimečně i více. Vy budete mít možnost nastavit v systému
libovolnou barvu z rozsahu 16 miliónů barev. Skutečně zobrazená barva ale závisí na
vlastnostech technického zařízení, protože se zobrazí vždy barva nejbližší.
Hodnotu barev je možné zadávat dvěma způsoby, které lze v programu libovolně kombinovat. Pokud budete používat pouze základní, šestnáctibarevnou paletu, můžete tak učinit zadáváním předdefinované konstanty udávající anglické jméno barvy. Stejnou barvu máte možnost zadat i pomocí tzv. RGB hodnoty.
Hodnota barev zadávaná definicí RGB znamená, že každá barva je definována jako
poměr kombinace barev modré, zelené a červené. Pro každou barvu je možné volit
hodnoty v rozsahu 0 až 256. Násobek těchto hodnot (modrá x zelená x červená) udává
výslednou barvu. Výhodné je používat tzv. hexadecimálního zápisu, kdy jsou pro každou
barvu vyhrazeny dvě pozice čísla s hodnotami od 00 (číslo 0) až do FF (číslo 256). Při
použití hexadecimálního čísla je nutné uvést před číslem rozlišovací znak & a číslo
musí začínat vždy písmenem H jako návěští hexadecimálního čísla. Viz tabulka hodnot
barev:
-------------------------------------------
hodnota konstanta název barvy
-------------------------------------------
&H000000 clBlack černá
&H000080 clMaroon kaštanově červená
&H0000FF clRed světle červená
&H008000 clGreen tmavě zelená
&H008080 clOlive tmavě žlutá
&H00FF00 clLime světle zelená
&H00FFFF clYellow žlutá
&H800000 clNavy tmavě modrá
&H800080 clPurple tmavě fialová
&H808000 clTeal tmavě modrozelená
&H808080 clDkGray tmavošedá
&H0C0C0C0 clLtGray světle šedá
&H0FF0000 clBlue modrá
&H0FF00FF clFushsia fialová
&H0FFFF00 clAgua modrozelená
&H0FFFFFF clWhite bílá
------------------------------------------
Příklady použití definice barvy čáry (text mezi složenými závorkami nemusíte psát,
jedná se o poznámku):
ImagePenColor(clWhite) 'bílá barva čáry
ImagePenColor(clRed) 'světle červená barva čáry
ImagePenColor(clBlue) 'modrá barva čáry
ImagePenColor(&H0FFFFFF) 'bílá barva čáry
ImagePenColor(&H00000FF) 'světle červená barva čáry
ImagePenColor(&H0FF0000) 'modrá barva čáry
Podobně, jako je možné nastavit parametry kreslené čáry je možné nastavit parametry
vykreslovaných ploch geometrických obrazců. Barva plochy se přitom zadává povelem
ImageBrushColor. Používá se přitom výše zadaných hodnot a konstant pro definici
parametru barvy. Příklady použití definice barvy plochy (text mezi složenými
závorkami nemusíte psát, jedná se o poznámku):
ImageBrushColor(clWhite) 'bílá barva plochy
ImageBrushColor(clRed) 'světle červená barva plochy
ImageBrushColor(clBlue) 'modrá barva plochy
ImageBrushColor(&H0FFFFFF) 'bílá barva plochy
ImageBrushColor(&H00000FF) 'světle červená barva plochy
ImageBrushColor(&H0FF0000) 'modrá barva plochy
Pro nastavení stylu vyplňování ploch se používá povel ImageBrushStyle, kde se
jako parametr povelu udává buď číslem definovaný styl, nebo jméno konstanty dle
následující tabulky:
-----------------------------------------------------------
hodnota konstanta název stylu
-----------------------------------------------------------
1 bsSolid vyplní oblast jednou barvou
2 bsClear vyplní oblast barvou pozadí
3 bsHorizontal vyplní oblast vodorovnými čárami
4 bsVertical vyplní oblast svislými čárami
5 bsFDiagonal diagonální čáry \\\\\\\
6 bsBDiagonal diagonální čáry ///////
7 bsCros vodorovné a svislé čáry
8 bsDiagCross vodorovné a svislé čáry diagonálně
------------------------------------------------------------
Příklady použití definice stylu plochy (text mezi složenými závorkami nemusíte psát,
jedná se o poznámku):
ImageBrushStyle(1) 'plné vybarvení plochy
ImageBrushStyle(3) 'výplň vodorovnými čárami
ImageBrushStyle(8) 'výplň diagonálními čárami
ImageBrushStyle(bsSolid) 'plné vybarvení plochy
ImageBrushStyle(bsHorizontal) 'výplň vodorovnými čárami
ImageBrushStyle(bsDiagCros) 'výplň diagonálními čárami
Aby bylo možné kreslit v grafickém okně do přesně určených pozic, musí být zadány
souřadnice pro kreslení. Souřadnice určují polohu jednotlivých bodů kresby. Souřadnice
znamená, že musíte uvést vzdálenost v bodech od levého okraje grafického okna a
vzdálenost v bodech od horního okraje grafického okna. Souřadnicový systém je tedy
vztažen k levému hornímu rohu, který má souřadnici 0,0. Hodnoty ve směru osy X
narůstají směrem doprava, hodnoty ve směru osy Y narůstají směrem dolů. Při zápisu
souřadnice se uvádí nejprve osa x, potom osa y. Je přitom možné zadávat příkazy pro
kreslení mimo plochu grafického okna, zobrazí se však pouze ta část, která je obsažena
maximálními souřadnicemi grafického okna.
Aktuální souřadnice se zobrazují ve stavovém řádku systému vždy, když máte
nastavenou myš nad grafickým oknem. Souřadnice je vhodné si vyzkoušet také na
povelu PImagePoint, který slouží pro zobrazení bodu na zadané souřadnici. Povel
nakreslí na zadaných souřadnicích bod o zadané velikosti. Bod se nakreslí aktuální
barvou pera, kterou lze nastavit procedurou ImagePenColor. Vyzkoušejte si několik
příkladů pro seznámení se se způsobem označování souřadnic grafické polohy:
Call ImagePoint( 0, 0, 2) 'levý horní roh
Call ImagePoint( 0, 100, 2) 'levý dolní roh
Call ImagePoint(100, 0, 2) 'pravý horní roh
Call ImagePoint(100, 100, 2) 'pravý dolní roh
Call ImagePoint( 50, 50, 10) 'uprostřed, větší bod
Jistě jste si všimli, že jsme nyní zapsali před povel příkaz Call. Ten se musí uvádět před
některými povely, pokud se zadávají parametry povelu v závorkách. Pokud byste tak
neučinili, nahlásil by vám systém chybové hlášení „Chyba kompilace, při volání Sub nelze
použít rodiče”. Další možností, jak psát uvedené povely je uvádět parametry funkcí jako
seznam za povelem, aniž by byly umístěny v závorkách. V dalším textu však bude až na
vyjímky používáno příkazu Call z důvodu zachování způsobu parametrů s jinými jazyky
systému.
Souřadnice grafického okna se použijí i pro kreslení geometrických tvarů pomocí
povelů. Možné je kreslit čáru povelem ImageLine, obdélník povelem ImageRectangle,
kružnici nebo elipsu povelem ImageEllipse a obdélník se zaoblenými rohy povelem
ImageRoundRect. Povelem ImageTriangle je možné nakreslit trojúhelník, což není pomocí
myši možné. Pomocí povelů je možné také kreslit povelem ImageArc část křivky a
povelem ImagePie kruhovou výseč. Vyzkoušejte si kreslení základních geometrických
tvarů:
Call ImageLine(20, 20, 50, 100) 'nakreslí čáru
Call ImageRectangle(10, 10, 100, 100) 'nakreslí čtverec
Call ImageEllipse(30, 30, 120, 120) 'nakreslí kružnici
Call ImageEllipse(30, 30, 120, 60) 'nakreslí elipsu
Call ImageTriangle(10,100,55,10,100,100) 'nakreslí trojúhelník
Call ImageArc(0,0,100,100, 50,0,0,50) 'levý horní čtvrtkruh
Call ImagePie(0,0,100,100, 50,100,100,50) 'pravý dolní čtvrtkruh
předchozí lekce (1.06) | obsah kurzu | následující lekce (1.08) |