Építési vonalak és téglalapok Free Pascal
Építése a vonallánc csúcsok XY tömb pont (n - pontok száma)
A grafikus szerkezetek amelyek akár abszolút koordinátái (x1, y1), (x2, y2), kérték smallint írja be az értékeket a képernyőn koordinátarendszer vagy a lépésekben (dx, dy) tekintetében a helyzet az aktuális pont. Abszolút koordináták lehet negatív. Ez azt jelenti, hogy az egyik pontot grafikusan primitív kívül a képernyő koordinátarács. De látunk egy töredéke a megfelelő grafikus primitív kell építeni. Az, hogy a feladat a szögletes pont a téglalap mereven rögzítve. Point (x1, y1) felel meg a bal felső sarokban a téglalap.
Megnyitása után a grafikus vagy grafikai képernyő tisztító aktuális pont (grafikus kurzor) Ez az eredeti - a bal felső sarokban. Az építőiparban a jelenlegi pont vonal végére mozog a szegmens. Az építkezés egy téglalap nem változik a helyzet az aktuális pont. Ez látható a következő példában (Listing 15.3).
Listing május 1 0,3. CP programban
programot CP; használja grafikon; var
GD: = D8bit; GM: = m800x600; initgraph (gd, GM, „);
LineRel (50,0); readln; closegraph;
A megfelelő grafikus kijelző ábrán látható. 15.4.
Ábra. 15.4. Mozgás az aktuális pont
Az egyenes szakaszok és kontúrok a téglalap lehet levonni nemcsak a szilárd vonalak. Alapértelmezésben a grafikus rendszer telepítve van, ezt a módot. Azonban meg lehet változtatni a kapcsolatot SetLineStyle eljárást.
SetLineStyle (Style, Pattern, szélesség);
Stílus az első paraméter általában megadva az alábbi mnemoniche- Sgiach állandók:
± SolidLn - épület szilárd line üzemmódban (alapértelmezés);
± DottedLn - mód építésének a szaggatott vonal;
± CenterLn - módban építésének szaggatott vonallal;
± Dashedln - mód építésének a szaggatott vonal;
± UserBitln - vonalakat üzemmód felhasználói minta.
Az első négy mód Minta paramétert figyelmen kívül hagyja, és lehet cserélni van adva, például nulla. Kinevezése - adja meg a felhasználói sablon van kialakítva, mint egy két bájtos hexadecimális állandók. Szkenneli a mintát balról jobbra. Aki a következő zéró kisülés miatt egy másik pixel A vonalak láthatatlan, és az egység szintjén - látható. Kimerítése után kiüríti bit mintakereső ismétlődik újra. A mintákat standard típusú sorok lejátszásakor az ábrán látható. 15.5. Mivel nem szabványos shab- anyaméhben állandó Pat = $ FFFFFF00 használunk.
A harmadik argumentum adja eljárások SetLineStyle vonalvastagság amelyek MO
Jet egyenlő egy pixel (szélesség = NormWidth) vagy két pixel (szélesség = ThickWidth).
Ábra. 15.5. vonalstílusokkal
DrawPoly eljárás építésére szaggatott vonal, amelynek csúcsai határozzák PointType tömb típusú pontok. Ha a koordinátákat az utolsó pont a tömb egybeessen a koordinátáit a kiindulási pont, hogy ilyen módon tudjuk építeni bármilyen sokszög (felsorolja 15,4).
Listing 15.4. programot sokszög
programot sokszög; használja grafikon;
xy: array [1..4] a PointType;
DrawPoly (4, xy); // építmények háromszög
Grafikus kijelző a program ábrán látható. 15.6.
Ábra. 15.6. Építése a háromszög
Ábrán látható. 15,1, 15,3-15,6 épített mesterségesen, t. Hogy. Szabvány által meghatározott a rajz módnál az összes grafikai elemek fehér fekete alapon. Ezért az igazi grafikus ablak megfelelő programok kerültek feldolgozásra a Paint kezelés segítségével a színeket választott területen a munka területén.
Az a tény, hogy csábítsák a grafikus képernyő fekete-fehérben nem lehet megoldani egyszerűen megváltoztatja a festék színe (fc: = 0), és a háttér színe (bc: = 15). Ha szerepel a fenti program az eljárás hívása előtt keltik Poly következő két állítás:
SetColor (0); // kódot fekete SetBkColor (15); // kód fehér
tartalmát a grafikus kijelző nem változik. Megpróbálja megmutatni a háttér színét, eltörölve a képernyő tartalma (ClearDevice eljárás) szintén nem jó nem - a képernyő kifehéredik, és színes festéssel, fehér háttér sorok Nem szabad hagyni. Ezért szükséges, hogy megy a „hype” grafikus rendszer: Code Zero színátadást a DAC regisztrálni számos eltérő 0. Ekkor a kijelölt tea színű, mint az előtér színe és változtatni a háttér színét (lásd lista 15.5).
Listing május 1 0,5. Rizo vanie H e molekulatömegű fehér CB
programot poly_B_W; használja grafikon;
xy: array [1..4] a PointType;
GD: = D8bit; GM: = m800x600; initgraph (gd, GM, „);
SetPalette (1,0); // fekete -> 1. DAC regisztrálja SetColor (1); // hozzárendelés színes rajz SetBkColor (15); // változtatni a háttér színét
ClearDevice; // kijelző háttérszíne
DrawPoly (4, xy); readln; CloseGraph;
Ezek után a manipulációk előtt kapcsolati grafikus kijelző, a kimenet egy nyomtatót, ami nem vezet megnövekedett fogyasztása a festék (lásd. Ábra. 15.6).