Objektumok és osztályok. Az objektumorientált programozás alapjai. Rajzolás tollal, festés ecsettel. A koordinátarendszer



Hasonló dokumentumok
Objektumorientált programozás Pál László. Sapientia EMTE, Csíkszereda, 2014/2015

Grafikai lehetőségek

VII. Appletek, grafika

BME MOGI Gépészeti informatika 14.

Számítástechnika II. BMEKOKAA Előadás. Dr. Bécsi Tamás

Java és web programozás

Eseményvezérelt alkalmazások fejlesztése II 3. előadás. Windows Forms dinamikus felhasználói felület, elemi grafika

A Vonallánc készlet parancsai lehetővé teszik vonalláncok és sokszögek rajzolását.

Bevezetés a programozásba II 1. gyakorlat. A grafikus könyvtár használata, alakzatok rajzolása

Imagine Logo Tanmenet évfolyam

A Paint program használata

Mechatronika segédlet 1. gyakorlat

Mechatronika segédlet 3. gyakorlat

Lakóház tervezés ADT 3.3-al. Segédlet

Java grafikai lehetőségek

Képszerkesztés. Letölthető mintafeladatok gyakorláshoz: Minta teszt 1 Minta teszt 2. A modul célja

BME MOGI Gépészeti informatika 15.

Kedves versenyző, az alábbi feladatok illetve egy interneten kitöltendő teszt megoldására 90 perc áll rendelkezésedre.

Rajzoljunk a Flash programmal! FLASH ALAPOK I.

Készítette:

C++ programozási nyelv

Bevezetés a Python programozási nyelvbe

Programozás BMEKOKAA146. Dr. Bécsi Tamás 8. előadás

13. A Paint rajzolóprogram

components : IContainer dx : int dy : int tmidőzítő : Timer toolstripseparator1 : ToolStripSeparator tsmikilépés : ToolStripMenuItem

Fürdőszoba tutorial 01

Programozási környezetek

Programozási technikák Pál László. Sapientia EMTE, Csíkszereda, 2009/2010

Prezentáció, Diagramok, rajzolt objektumok. Szervezeti diagram

5.osztály 1.foglalkozás. 5.osztály 2.foglalkozás. hatszögéskörök

HTML é s wéblapféjlészté s

A program a köröket és köríveket az óramutató járásával ellentétes irányban rajzolja meg.

BME MOGI Gépészeti informatika 18. Grafika, fájlkezelés gyakorló óra. 1. feladat Készítsen alkalmazást az = +

Grafikus felületek a programozó szempontjából grafikus elemek absztrakt reprezentációja az egyes elemek tulajdonságait leíró adatstruktúrák.

Tömbök kezelése. Példa: Vonalkód ellenőrzőjegyének kiszámítása

cím létrehozása

Programozás 7.o Az algoritmus fogalma (ismétlés)

New Default Standard.ipt

Vektorgrafikus rajzeszközök

Tájékoztató. Használható segédeszköz: -

Programozási nyelvek 1. előadás

11.5. Ellipszis és ellipszisív

Algoritmusok raszteres grafikához

Prezentáció, Prezentáció elkészítése. Nézetek

ARCHLine.XP Interior Windows. Interior alapok. Oktatási anyag az ARCHLine.XP Interior alapszintű használatához.

Miután létrehoztuk, szeretnénk neki beszédesebb nevet adni. A név változtatásához a következőt kell tenni:

Atlon 2 Utasbiztosítási Rendszer

C++ programozási nyelv

Név Magasság Szintmagasság tető 2,700 koszorú 0,300 térdfal 1,000 födém 0,300 Fsz. alaprajz 2,700 Alap -0,800

Regresszió számítás. Tartalomjegyzék: GeoEasy V2.05+ Geodéziai Kommunikációs Program

Programozási nyelvek 2. előadás

Word VI. Lábjegyzet. Ebben a részben megadhatjuk, hogy hol szerepeljen a lábjegyzet (oldal alján, szöveg alatt).

Rajzolás PowerPoint 2007 programban

48. ORSZÁGOS TIT KALMÁR LÁSZLÓ MATEMATIKAVERSENY Megyei forduló HETEDIK OSZTÁLY MEGOLDÁSOK = = 2019.

Mesh generálás. IványiPéter

Programozás III GRAFIKA RAJZOLÁS SWING FELÜLETEN RAJZOLÁS GRAFIKA HASZNÁLATA. Rajzolni az awt csomag Graphics osztályának metódusaival tudunk.

Baran Ágnes. Gyakorlat Függvények, Matlab alapok

Animációk, effektusok

Mechatronika segédlet 2. gyakorlat

ArcGIS 8.3 segédlet 5. Dr. Iványi Péter

Alapvető beállítások elvégzése Normál nézet

Téglalap kijelölés opciói

CAD-CAM-CAE Példatár

Geometria megadása DXF fájl importálásából

Digitális terepmodell modul

MONITOROK ÉS A SZÁMÍTÓGÉP KAPCSOLATA A A MONITOROKON MEGJELENÍTETT KÉP MINŐSÉGE FÜGG:

Prezentáció használata

Minden jog fenntartva, beleértve bárminemű sokszorosítás, másolás és közlés jogát is.

Másolás, mozgatás. Kijelölés. Másolás

Rajz 01 gyakorló feladat

Corel PHOTO-PAINT X5 Maszkolástól nyomtatásig

Outlook Express használata

Képek és grafikák. A Beszúrás/Kép parancsot választva beszúrhatunk képet ClipArt gyűjteményből, vagy fájlból. 1. ábra Kép beszúrása

Hallgatói segédlet a tananyag megjelenítéséhez

Szöveges műveletek. Mielőtt nekikezdenénk első szövegünk bevitelének, tanuljunk meg néhány alapvető műveletet a 2003-as verzió segítségével:

Diagram formázása. A diagram címének, a tengelyek feliratainak, jelmagyarázatának, adatfeliratainak formázása

14.2. OpenGL 3D: Mozgás a modellben

Tervezés eszköztár. Alapszínek alap betűk. Háttérszín (háttérstílus) Betűszínek. Betűtípusok. w w w. h a n s a g i i s k. h u

Végrehajtói Nyilvántartó Rendszerbe illeszkedő Postázási modul ismertetése

Programozási nyelvek 4. előadás

Segédlet az Eger Megyei Jogú Város Polgármesteri Hivatal által kiadott, PHEGER_1231-es építményadó bevallásához használt elektronikus nyomtatványhoz.

mintásfal mintásfal :m :sz :dbjobbra :dbfel

Rajz 02 gyakorló feladat

Láthatósági kérdések

Felhasználói kézikönyv - Android kliens

Ablakok. Fájl- és mappaműveletek. Paint

Speciális szükségletű felhasználók navigációjának vizsgálata különböző multimédiás alkalmazásokban

Függvények ábrázolása

Számítógépes grafika

PREZENTÁCIÓ, GYAKORLÓ FELADATSOR

Egyéb 2D eszközök. Kitöltés. 5. gyakorlat. Kitöltés, Szöveg, Kép

Programozási nyelvek 3. előadás

Windows alkalmazások készítése. A Windows rendszerben a felhasználó hozzászokott a menü, az eszköztár és a többalakos programok használatához.

Segédlet az Eger Megyei Jogú Város Polgármesteri Hivatal által kiadott, EGERPH_1431-es építményadó bevallásához használt elektronikus nyomtatványhoz.

Közös keret egy objektumhalmazra

A Adobe Flash CS4 grafikus felülete

Tartalom jegyzék 1 BEVEZETŐ SZOFTVER ÉS HARDVER KÖVETELMÉNYEK 2 2 TELEPÍTÉS 2 3 KEZELÉS 5

VISUAL BASIC ALAPISMERETEK

CSS3 alapismeretek. Bevezetés a CSS-be. Mi is az a CSS? Alkalmazási formái, szintaxisa

Átírás:

Objektumok és osztályok Az objektumorientált programozás alapjai Rajzolás tollal, festés ecsettel A koordinátarendszer A vektorgrafikában az egyes grafikus elemeket (pontokat, szakaszokat, köröket, stb.) egy koordinátarendszerben helyezzük el. A Windows rendszerben minden objektumnak (űrlap, gomb, stb.) saját koordinátarendszere van. A koordinátarendszer origója az ablak bal felső sarka, az x tengely vízszintesen jobbra, az y tengely függőlegesen lefelé mutat. Ez természetesen következménye annak, hogy egy ablak átméretésekor az ablak bal felső sarka marad meg, a többi részét csökkenti vagy növeli a felhasználó. A koordinátarendszerben az egység a képpont, ebből következik, hogy a megrajzolható terület a képernyő felbontásától függ. Ezért ha olyan koordinátákat adunk meg, amelyek az adott felbontás mellett nincsenek a képernyőn, nem kapunk hibajelzést, csupán nem jelenik meg az ábra. Ha egy programot elindítunk, akkor a fő ablakának bal felső sarkát a képernyő koordinátarendszerében adjuk meg. Ha ez az ablak egy újabb objektumot nyit meg, akkor annak bal felső sarkát már a fő ablak koordinátarendszerében kell megadnunk stb., tehát minden objektumot a szülő objektumához viszonyítunk. Ez viszont azt is jelenti, hogy egy objektum koordinátái nem változnak, ha a szülő objektumot a felhasználó mozgatja. Ilyenkor csupán a szülő objektum bal felső sarkának koordinátái módosulnak az őt létrehozó objektumhoz képest. Graphics osztály használata Rajzoláshoz három objektum szükséges: egy toll egy ecset, amivel rajzolunk, egy objektum (vászon) amire rajzolunk és egy objektum ( kéz ), ami rajzol. A Windowsban e két utóbbi összetartozik: a Me űrlapra például a Me.CreateGraphics, a pb képdobozra pedig a pb.creategraphics objektum metódusaival rajzolhatunk. 1

Ezek a grafikus objektumok a Graphics osztály példányai. Különlegességük, hogy nem kell őket külön a New kulcsszóval példányosítani, a fenti hivatkozás esetén automatikusan létrejönnek. Ha az űrlapra a Me.CreateGraphics objektum metódusaival közvetlenül rajzolunk, meglehetősen hosszú programsorok keletkeznek. Ráadásul az objektum is minden hivatkozáskor újra és újra létrejön. Kevesebbet kell írnunk és az erőforrásokat is kevésbé terheljük, ha a grafikus objektumot egy alkalmas pillanatban pl. g néven eltároljuk. A deklarációs részben elhelyezett Dim utasítás nem hoz létre új objektumot, csupán jelzi, hogy lesz g néven egy grafikus objektum: Dim g As Grapgics Itt még nem célszerű a = Me.CreateGraphics utasítással a grafikus objektumot megadni, mert az űrlap csak a Load esemény hatására jön létre. Ekkor áll be pl. az űrlap kezdeti mérete is, tehát az ehhez tartozó eseménykezelő eljárásba célszerű tennünk az értékadást: A Pen osztály A tényleges ábra elkészítéséhez a g objektummal létrehozott kézbe még tennünk kell egy rajzoló vagy festő eszközt. Rajzoláshoz egy vagy több tollat (a Pen osztály objektumai), míg festéshez egy vagy több ecsetet (Brush osztály) használhatunk. A toll két legfontosabb paramétere a szín (Color) és a vastagsága (Width). A következő deklaráció egy új tollat hoz létre, melynek színe kék, vastagsága pedig 3 pixel. (A szín megadása kötelező, a vastagság elhagyható.): Dim toll As New Pen (Color.Blue, 3) A toll paramétereit a programunk során bármikor módosíthatjuk, így egyszerű ábra esetén elég egy tollat definiálni, melynek változtatjuk tulajdonságait: toll.color = Color.Red toll.width = 10 A fentiek helyett használhatjuk a Pens nevű osztály előre definiált 1 vastagságú tollait is. Ebben az esetben nem kell toll objektumot külön definiálni, hanem ahol egy kék tollra van szükségünk, ott elegendő beírni a toll helyett, hogy Pens.Blue. Az így kapott toll színét listából választhatjuk ki. Rajzolás tollal A tollal való rajzoláshoz a Graphics osztály Draw-val kezdődő metódusait kell meghívni. A metódus első paramétere minden esetben az a toll, amellyel a rajzolást végezzük. Ezek közül példaként nézzünk meg hármat: 2

Szakasz rajzolása a DrawLine(toll x1, y1, x2, y2) metódussal történik, ahol (x1, y1) a szakasz kezdőpontja, (x2, y2) pedig a szakasz végpontja. Ha a kezdőpont megegyezik a végponttal, akkor egy pontot kapunk. Téglalap rajzoláséhoz a DrawRectangle (toll, x, y, w, h) metódust használhatjuk, ahol (x, y) a téglalap bal felső csúcsa, a w a szélessége, h pedig a magassága. A w és h értéke negatív is lehet. Kör (és ellipszist) a DrawEllipse (toll, x, y, w, h) metódus meghívásával rajzolhatunk, itt a paraméterek a kört (ellipszist) tartalmazó téglalap adatai. Példa: A következő program az OK gomb hatására egy tiltótáblaszerű alakzatot rajzol: Dim toll As New Pen(Color.Red, 5) g.drawline(toll, 100, 100, 150, 150) g.drawellipse(toll, 100, 100, 50, 50) toll.color = Color.Black g.drawrectangle(toll, 80, 80, 90, 90) Point és a Rectangle osztály A Visual Basic hasznos absztrakciója a pont és a téglalap objektum. Egy pontot (Point osztály) a koordinátáival adhatunk meg. A téglalapokat (Rectangle osztály) pedig négy adattal: ezek a bal felső sarok X és Y koordinátái, továbbá a szélessége (width) és a magassága(height). Példa: Két pontot (p, q) és egy téglalapot (t) hozzunk létre és ezek segítségével rajzoljuk meg az előző ábrát. A t téglalap adatait utólag módosítjuk: Dim toll As New Pen(Color.Red, 5) Dim p, q As Point Dim t As New Rectangle(100, 100, 50, 50) p = New Point(100, 100) q = New Point(150, 150) g.drawline(toll, p, q) g.drawellipse(toll, t) toll.color = Color.Black t.x = 80 t.y = 80 t.width = 90 t.height = 90 g.drawrectangle(toll, t) 3

Ecset használata Kitöltött alakzatok készítéséhez az ecsetet ( Brush) kell használnunk, melyből többféle is létezik, a kitöltéstől függően. A legegyszerűbb ecset egy színnel tölti a területet, míg színátmenet készítéséhez vagy adott pixelgrafikus ábrával való mintázáshoz stb. különleges ecseteket kell készítenünk. Az ecsettel való festéshez a Graphics osztály Fill-el kezdődő metódusait használjuk, melynek első paramétere megegyezik a rajzolásnál használt neki megfelelő metódus adataival. Az egyszínű ecset a SolidBrush osztály tagja, létrehozásakor csupán a színét kell megadnunk. Példánk egy nagy piros foltot fest a képernyőre: Dim ecset1 As New SolidBrush(Color.Red) Dim t As New Rectangle(100, 100, 50, 50) g.fillellipse(ecset1, t) A legáltalánosabb esetben az ecset mintázatát (ahogy a festők esetében a festőhengerét) egy pixelgrafikus képben adhatjuk meg. A képet pl. a Paint segítségével készíthetjük el. Az ilyen ecset a TextureBrush osztály tagja: Dim ecset2 As New TextureBrush(Bitmap.FromFile( C:\ecsetem.bmp )) Dim t As New Rectangle(100, 100, 300, 300) g.fillrectangle(ecset2, t) Szöveg kiírása, Font osztály Szöveg kiírásához a Graphics osztály DrawString metódusát használjuk. A metódusnak 5 paramétere van: a kiírandó szöveg, a betű formai adatai (font), a festéshez használt ecset és a szöveg bal felső sarkának koordinátái. A fontot legegyszerűbben úgy adhatjuk meg, hogy egy másik objektum font tulajdonságára hivatkozunk. A következő sorban pl. a szöveg kiíratása a Button1 gomb betűkészletével történik: g.drawstring( Mi ez?, Button1.Font, Brushes.Black, 100, 100) 4

A fontot, mint objektumot természetesen magunk is definiálhatjuk. Ekkor a szövegszerkesztésben megismert három adatot, a típust, a méretet és a stílust kell megadnunk: Dim betű As New Font ( Arial, 30, FontStyle.Bold) g.drawstring( Mi ez?, betű, Brushes.Black, 100, 100) rajzolás festés alakzat DrawArc Ívet rajzol DrawBezier Bezier-görbét rajzol DrawClosedCurve FillClosedCurve Zárt görbét rajzol/tölt ki DrawCurve Görbét rajzol DrawEllipse FillEllipse Ellipszist rajzol/tölt ki DrawImage Képet rajzol DrawIcon Ikont rajzol DrawLine Vonalat húz DrawLines Vonalakat húz DrawPath FillPath Grafikus görbét rajzol/tölt ki DrawPie FillPie Körszeletet rajzol/tölt ki Feladatok: 1) Rajzoljuk meg az olimpiai ötkarikát! Az egyes színek sorrendje az első sorban kék, fekete, piros, a második sorban pedig rendre sárga, zöld. 2) Vonalkázzunk be átlósan egy négyzetet! 3) Rajzoljunk négyzethálót! 4) Rajzoljuk meg egy körsort! 5) Rajzoljuk meg a sakktáblát! 6) Rajzoljunk céltáblát! 5