|
Jednotka Graph
Tak tohle je docela úlet - umožňuje používat grafiku, ale je tak pomalá, že se to dá použít pouze pro okrasný efekt tam, kde na čase nezáleží - tedy real-time hry v tom asi neuděláte...
My se podíváme jenom na několik nejdůležitějších příkazů. Pokud se vám některý zalíbí, můžete si ho i zapamatovat.
Nejdříve musíme počítači oznámit, že budeme používat grafiku.
To se provádí takto:
uses Graph; var Gd, Gm : integer; ... begin ... Gd:=Detect; Initgraph(Gd,Gm,''); {A od teď si lze kreslit} ...
Obrazovka má cca. 640 x 480 pixelů. Každý bod má svou vlastní souřadnici, musíme si ovšem dát pozor na to, že jsou počítány seshora dolů (u y-ové).
A teď tedy pár procedur a funkcí. CloseGraph; - Velice důležité je po sobě vždy uklidit. Tento příkaz ukončí grafický režim. Circle(x,y,r); Nakreslí kružnici o středu S[x,y] a poloměru r pixelů. Ellipse(x,y,astart,aend,xr,yr); Nakreslí eliptický oblouk o středu S[x,y] a délkách poloos xr,yr. Parametry astart a aend definují startovní a koncový úhel vykreslování (pro astart=0 a aend=360 máme celou elipsu) Line(x1,y1,x2,x2); Nakreslí čáru z [x1,y1] do [x2,y2]. LineRel(dx,dy:Integer); Nakreslí čáru od aktuální pozice kurzoru, která končí o dx bodů vpravo a dy bodů níže... LineTo(x,y); Nakreslí čáru od aktuální pozice kurzoru do bodu [x,y] MoveRel(dx,dy); Posune kurzor o dx (vodorovně) a dy (svisle) MoveTo(x,y); Přemístí kurzor na x a y OutText(s); vypíše řetězec --- klasické Writeln je v grafickém režimu bez účinku OutTextXY(x,y,s); vypíše řetězec na pozici x,y ClearDevice; Smaže obrazovku (ClrScr z Crt v grafickém režimu nefunguje) SetColor(Barva); nastaví barvu SetBkColor(Barva); nastaví barvu pozadí PutPixel(x,y,barva); plácne na souřadnice x,y bod o barvě barva... To nám stačí. Pokud budete potřebovat další funkce a procedury, je lepší vyrobit si je v assembleru. Nebo se můžete podívat do Helpu ve vašem Pascalu.
DCV: Napište program, který zobrazí dvě kružnice rotující kolem společného středu (zvětšujte úhel pomocí nějakého cyklu a využijte definic funkcí Sinus a Cosinus a nezapomeňte, že nakreslenou kružnici musíte také někdy smazat)
PS: Osobně neznám jediné efektivní využití této jednotky, uvedl jsem ji jenom proto, abyste si mohli hrát... Skutečná grafika se v Pascalu dělá přes assembler, ale to je mnohem náročnější.
Zdroj: http://programar.webpark.cz
|