Március 7. 2 teljes (fogmosás) bármilyen zárt alak

7.3.2. Kitöltése (fogmosás) bármilyen zárt alakú

FloodFill eljárás (X, Y, határ) kitölti egy tetszőleges zárt formában a jelenlegi stílus és szín kitöltés. Pont koordinátáit (X, Y) azt jelzik, kiindulva bármely pontján a mező kerül öntéssel. Ha egy pont belül egy zárt alakzat, ez lesz festve fölött a belső régió. Ha ez a szám nincs lezárva, a töltet fog terjedni az egész képernyőt. átnyúló paraméter határozza meg a színét a határvonal. Például, egy kép egy zárt alakzat lehet tölteni a két szolgáltató: SetFillStyle (5, piros); FloodFill (320, 310, cián). Itt piros szín alak teli jelek \\ dupla vastagságú, és a határ - szín cián. Point (320, 310) egy belső pontja a környéken.

7.3.3. Építése egyszerű geometriai alakzatok

Vonalakat és pontokat. Leképezésére gyakran kell állítani a kiindulási pont ez a konstrukció. Erre a célra a Pascal chart biztosítja a „Current Index» (CP - mutató jelenlegi), amely meghatározza a helyzetét a »láthatatlan kurzor«. CP mozgatni határain belül a képernyő, amely, mint tudjuk, az első negyedévben a derékszögű koordináta rendszerben, számos eljárások és függvények. Elsősorban, ez az eljárás MoveTo (X, Y), amely mozgatja a mutató jelenlegi (CP) pozícióban X, Y. Például, MoveTo eljárás (200,100) mozog a jelenlegi (láthatatlan) képernyőn mutató a pont koordinátái (200, 100).

Felhívni egyenesek használt három eljárások:

Vonal (X, Y, X1, Y1: integer) vonalat rajzol a pont koordinátái (X, Y) egy pontig (X1, Y1);

LineTo (X, Y) épít egy vonalat a pont a kurzor aktuális helyzetben, hogy egy pont a koordinátái X, Y;

LineRel (dx, dy) létrehozunk egy vonal azt a pontot, a jelenlegi helyzetben a mutatót a pont (CPX + dX, CpY + dy), ahol CPX és CpY - aktuális koordináták Cp. vonal szín beállítása SetColor operátor (szín).

Turbo Pascal lehetővé teszi, hogy a telek vonalak különböző stílusok: vékony, széles, szaggatott, pontozott, stb Beállítás stílusban eljárás SetLineStyle (Style: szó; minta: szó; Vastagság: szó). vonalstílusok a 3. táblázatban látható.

3. ábra. vonalstílusokkal

Bármi legyen is a kép nem jelenik meg, akkor minden épült a pontokat. Megjelenítéséhez használt eljárás RutPixel pont (X, Y, szín), amely felhívja a kijelzőn pont (pixel) koordinátákkal X, Y és a szín „színes”.

A következő egy olyan program, amely kitölti a képernyőt pontok, amelynek színe és azok elhelyezkedése adja a véletlenszám-generátor Véletlenszerűsítés:

Var X, Y, c, d, m: egész;

d: = Detect; InitGRAPH (d, m, '');

miközben nem keyPressed csinálni

Téglalapok. A konstrukció a négyszögletes alakzatok, több eljárást. Ezek közül az első - az eljárás téglalap (X1, Y1, X2, Y2) téglalapot rajzol szín adja pre SetColor operátor. eljárást alkalmazzuk egy kitöltött téglalapot: Bar (X1, Y1, X2, Y2). Amellett, hogy téglalapok lehet építeni, és a térbeli téglalap formák Bar3D eljárással (X1, Y1, X2, Y2 integer, Mélység: Szó; Top :. logikai érték), ahol X1, Y1, X2, Y2 határozzák meg a helyzetét a téglalap, hogy „első” arc tér formák, és mélysége paraméter megadja a „mélysége” a háromdimenziós téglalap, amely jellemzően (X2 - X1 + 1) div 4. (Cube). Top paraméter határozza meg a helyzetét a csúcsai a téglalap képest a homlokfelület. kitöltőszínt a Bar és Bar3D meghatározott SetFillStYle eljárást.

Ívek és körök. Az eljárás a felkutatása a kerülete a jelenlegi szín formátuma a következő: Circle (X, Y, Radius: szó), ahol X és Y - a kör középpontjának és a Radius - sugara. Bizonyos esetekben, különösen, hogy hozzon létre egy Pseudo számok ív használni. Ezeket lehet levonni eljárás alkalmazásával Arc (X, Y: integer; Stängle, EndAngle, Radius: szó), ahol X, Y - a kör középpontját, Stängle és EndAngle - a kezdeti és a végső ív szöge fokban megadott, Radius - az ív sugara.

És az ellipszis ágazatokban. Az építési elliptikus ívek tervezték Ellipszis (X, Y, Stängle, EndAngle, XR, YR) eljárás, ahol X, Y - az ellipszis középpontját megjelenítéséhez koordinátákat, a XR és YR - vízszintes és függőleges tengely körül. Az ív az ellipszis húznak a kezdőszögét végéig szög Stängle EndAngle aktuális színt. Háttér belsejében ellipszis egybeesik a képernyő háttér. Tények alapján matematikai ellipszis kommunikáció a kör, akkor le lehet vonni, ívek és körök (de nem az ellipszis), ha vesszük a jelen eljárásban egyenlő értékeket az XR és YR. Másrészről, az a komplett ellipszis eljárás Ellipszis (X, Y, Stängle, EndAngle, XR, YR), hogy Stängle = 0, EndAngle = 360.

Ahhoz, hogy hozzon létre egy töltött ellipszis, egy speciális eljárással FillEllipse (X, Y, XR, YR), ahol az X, Y - a központ a ellipszis megjelenítéséhez koordinátákat, a XR és YR - vízszintes és függőleges tengely körül. Filler SetFillStyle megállapított eljárást. Nyilvánvaló, hogy nem rajz töltött ellipszis szükséges meghatározni az eljárás SetFillStyle háttér színét.

Akkor létrehozni és feltölteni az ágazat az ellipszis. Ez használ Sector (X, Y, Stängle, EndAngle, XR, YR) eljárás, ahol X, Y - központ, XR, YR - vízszintes és függőleges sugarak, Stängle és EndAngle - kezdő és befejező szög (fokokban).

Az alábbiakban a munkaprogram különböző típusú vonalak és a festék a különböző formájú és színű.

Var i, d: integer;

SetLineStyle (SolidLn, 0, NormWidth);

SetFillStyle (SolidFill, piros);

Sector (100, 200, 45, 135, 80, 80);

kezdő szög 45, végszög 135 és sugár 80>

SetLineStyle (SolidLn, 0, ThickWidth);

SetFillStyle (SolidFill, sárga);

Téglalap (300, 10, 400, 70);

FloodFill (350, 50, piros);

SetLineStyle (SolidLn, 0, NormWidth);

SetFillStyle (7, piros);

Cercle (500, 250, 50);

FloodFill (500, 250, CAYAN);

Vyvodteksta. A képernyőn megjelenő képek általában kíséri egy magyarázó szöveget. A grafikus módot használják ezt az eljárást, és OutText OutTextXY. OutText eljárás (szöveg) jelenik meg egy sornyi szöveget a jelenlegi helyzetben Cp. OutTextXY eljárás (X, Y, szöveg), ahol X, Y - koordinálja a kiindulópontja a szöveges kimenet (bal felső sarokban a szöveg kimenet), Text - állandó vagy változó string típusú.

Tab. 5. betűtípus táblázat

A kívánt betűméretet lehet állítani más módszerrel - alkalmazásával SetUserCharSize eljárás (multX, DivX, Multy, Divy: szó). Az első két paraméter szabályozza a horizontális dimenziója, az utolsó két - függőleges. Ha vesszük a szélessége a szabványos font 1 az arány multX / DivX fogja meghatározni a szélességét.

Ez a táblázat azt mutatja, betűméretet 0, és amelynek vízszintes helyzetben.

Itt egy példa program, amely igazolja az eltérő betűtípusok és betűméretek megjeleníti a szöveget.

Var i, d: integer;

SetTextStyle (DefaultFont, HorizDir, 3);

OutTextXY (5, 1, 'DefaultFont méretű 3');

SetTextStyle (TriplexFont, HorizDir, 1);

SetTextStyle (SmaillFont, 0, 4);

SetTextStyle (DefaultFont, VertDir, 3);

SetTextStyle (TriplexFont, 1, 1);

OutTextXY (5, 3, 'TriplexFont mérete 1');

SetTextStyle (GothicFont, VertDir, 2);

Eszközök dolgozni töredékek. A hatás a mozgás grafikus módban. Amellett, hogy a korábban tárgyalt grafikai eszközöket épület és képek megjelenítésére számos további eljárások menteni és visszaállítani egyes darabjai a kép. Manipulálni a fragmentum először meg kell tudni a méretét. Ezt használja imagesize funkció (X1, Y1, X2, Y2), ahol X1, Y1, X2, Y2 - koordinátáit a bal felső és jobb alsó sarkában a téglalap alakú régióban a képernyőn. A függvény a mérete bájtban a fragmens. Ezután osztják a helyét a kódrészletet a készülék memóriájában. Ahhoz, hogy ezzel az eljárással GetMem (BitMap, méret), ahol BitMap - változó típusú mutató, Méret - a méret a kapott fragmens alkalmazásával imagesize.

A fent leírt eljárás lehet használni, hogy a kijelző bármely mozgó tárgy. Az alábbiakban egy hasonló programot.

Var i, d, Méret: integer; p: pointer;

SetFillStyle (1, piros);

Méret: = imagesize (18, 220, 42, 244);

Bár nem keyPressed csinálni

PutImage (i, 220, p ^, NormalPut);

PutImage (i, 220, p ^, NormalPut);

Ez a program végrehajtja a mozgás a piros labdát a bal szélén a képernyő jobb és vissza. A folyamat leáll bármely gomb megnyomásával.

Laboratóriumi munka №7

A cél a munkát. mester grafikus függvények és eljárások; megtanulják, hogyan kell létrehozni egy programot az építés a különböző képernyő-képek tölteni őket színe; master kimenet technológia képernyőn megjelenő szöveg grafikus módban; szervezni a mozgás grafikus objektumok a monitoron.

Grafikai szükséges információkat, hogy képes elindítani a grafikus megjelenítési mód, hogy jól ismerem a folyamatokat és funkciókat építésére egyszerű grafikával primitívek és hogy képes legyen használni őket, hogy építsenek összetett (kompozit) számok. számok a képernyőn alapuló mozgalom „habozás” dinamikus képet a memóriában, majd hívja meg (általában a ciklus) a képernyőn egymást követő pontokat, amelyek az illúziót kelti a mozgás. Meg kell, hogy gondosan vizsgálja a sorrendben a hívást erre a célra a vonatkozó eljárások és függvények.

Mielőtt elvégezné a szükséges munkát, hogy megismerjék az elméleti anyagot a témában „Graphics Programming”.

Példa 1. Készítsen programot építésére által kialakított mintázat metszéspontja két család eltérő szegmensek, amelyekben a K1 és K2 - a távolság a bal és a jobb szegmenseket, és H - Shift-lefelé lejtő (felfelé) az egész család.

Határozat. Épület vízszintes vonal vonal eljárás (0, k, 640, k). Ha azt szeretnénk, hogy egy n sorból, ez protsedure kell helyezni a hurok: i: = 1-től n do vonal (0, i * k, 640, i * k). A lejtőn a vonalak hozzáadásával kapott lépéseket a második koordináta h (H> 0, a lefelé lejtő, H 2, az [a, b].

Határozat. A konstrukció a grafikont a funkció szükséges, hogy megtörjük a szegmens [a, b] n (h - a megoszlási lépés (b-a) / n), majd végzett eljárások alkalmazásával és a vonal lineto vonalszegmensek alkotnak sokszögű vonal grafikon a függvény. Akkor biztosan használni, és a csatlakozási pont (dot kirajzoló). A szolgáltatás számítási program konstrukció értékeit egy tetszőleges helyen és eljárás az pont a vonallánc, amely a függvény grafikonját.

Var gD, gM, N: integer;

f (x: real). igazi;

Eljárás graf (x0, x1, y0, y1, N: szó; a, b: a valós);

Var h, m, X, t1, t2: a valós;

i, u, v, xv, yv: szó;

Tanulás programmirovanienayazykePaskal. A diákok megtanulják az alapokat a algoritmikus erősebb és programmirovaniyanayazyke Basic (. Módszertani sor választható kurzusok fejlesztése „a nayazykePaskal” kifejezés magában foglalja útmutatók és műhelyek. Popov.