Lekce 1.07
Ovládání grafického okna


předchozí lekce (1.06) obsah kurzu následující lekce (1.08)

Předchozí lekce vás seznámila krátce se základními možnostmi použití grafického výstupního okna. Naučili jste se kreslit do grafické plochy pomocí myši, ukládat, načítat a vytisknout vytvořený obrázek. Nyní se seznámíte s dalšími možnostmi grafického okna a s parametry okna, které budete potřebovat pro programování grafických povelů. Poznáte, že vše, co bylo možné nastavit v grafickém okně budete mít možnost zadat pomocí povelu z příkazového okna.

Č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 číslicí (ne písmenem). Viz tabulka hodnot barev:


-------------------------------------------
hodnota    konstanta    název barvy
-------------------------------------------
$000000    clBlack      černá
$000080    clMaroon     kaštanově červená
$0000FF    clRed        světle červená
$008000    clGreen      tmavě zelená
$008080    clOlive      tmavě žlutá
$00FF00    clLime       světle zelená
$00FFFF    clYellow     žlutá
$800000    clNavy       tmavě modrá
$800080    clPurple     tmavě fialová
$808000    clTeal       tmavě modrozelená
$808080    clDkGray     tmavošedá
$0C0C0C0   clLtGray     světle šedá
$0FF0000   clBlue       modrá
$0FF00FF   clFushsia    fialová
$0FFFF00   clAgua       modrozelená
$0FFFFFF   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($0FFFFFF);   { bílá barva čáry }
ImagePenColor($00000FF);   { světle červená barva čáry }
ImagePenColor($0FF0000);   { 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($0FFFFFF);    { bílá barva plochy }
ImageBrushColor($00000FF);    { světle červená barva plochy}
ImageBrushColor($0FF0000);    { 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:


ImagePoint(  0,   0,  2);  { levý  horní roh }
ImagePoint(  0, 100,  2);  { levý  dolní roh }
ImagePoint(100,   0,  2);  { pravý horní roh }
ImagePoint(100, 100,  2);  { pravý dolní roh }
ImagePoint( 50,  50, 10);  { uprostřed, větší bod }
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ů:

ImageLine(20, 20, 50, 100);          { nakreslí čáru }
ImageRectangle(10, 10, 100, 100);    { nakreslí čtverec }
ImageEllipse(30, 30, 120, 120);      { nakreslí kružnici }
ImageEllipse(30, 30, 120, 60);       { nakreslí elipsu }
ImageTriangle(10,100,55,10,100,100}; { nakreslí trojúhelník }

ImageArc(0,0,100,100, 50,0,0,50);    {levý  horní čtvrtkruh}
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)

OZOGAN, 1 Máje 97, 460 01 Liberec
tel.,fax: (048) 52 28 338, e-mail: info@ozogan.cz