logo

.
Thursday 09th of September 2010    

Ankety

Co tu není dobré ?
 

Přihlášení



Provoz stránek

návštěv dnes: 27
návštěv včera: 59
návštěv za měsíc: 513
návštěv celkem: 17817

Home Škola PASCAL 24 unita "Graph"
24 unita "Graph" Tisk Email
Hodnocení uživatelů: / 0
NejhoršíNejlepší 
Napsal uživatel Administrator   
Čtvrtek, 05 Listopad 2009 09:20

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

 
bottom

top

kolik vás je ?

Právě připojeni - host: 1 

bottom

Založeno na Joomla!. Designed by: Free Joomla 1.5 Template, dns. Valid XHTML and CSS.