Előadást letölteni
Az előadás letöltése folymat van. Kérjük, várjon
KiadtaZsolt Kozma Megváltozta több, mint 10 éve
1
Számítógépes Grafika 2. gyakorlat Programtervező informatikus (esti) 2011/2012 őszi félév
2
Utasítások PImage:.gif,.jpg,.tga és.png képek megjelenítését szolgáló osztály A.width és.height mezők az adott kép szélességét és magasságát tárolják A.pixels tömbje pedig a színeket
3
Utasítások loadImage(eleres): visszaad egy PImage-t, ami az első paraméterben megadott elérési útvonalon található (lehet URL is!) image(img, x, y, width, height): kirajzol Az img nevű PImage típusú képet kifeszíti az (x, y, width, height) által meghatározott téglalapra (ha kell nagyít/kicsinyít)
4
Utasítások A pixels[] tömb használata a következő: Először img.loadPixels() függvényhívás kell, ami feltölti a pixels[] tömböt Utána használhatjuk a img.pixels[]-t a kép pixeleinek lekérdezésére és módosítására (1D-s a tömb!) Végül ha módosításokat végeztünk, akkor img.updatePixels()-t kell hívnunk
5
Példa PImage i ; void setup() { size(600,600) ; i = loadImage("http://hapakj.web.elte.hu/szgesti/images/elte.png") ; } void draw() { image(i,10,10) ; }
6
Feladat 1 Töltsetek be egy tetszőleges képet a netről Bal kattintás jelölje ki a kép bal felső pozícióját Jobb kattintás pedig a jobb alsót
7
Adatszerkezetek A Processing támogatja alapból a következő tároló típusokat: ArrayList HashMap Array stb… Használatuk a Java referencia szerint
8
Adatszerkezetek PVector: 2 vagy 3 dimenziós vektor Adatmezők: x, y, z Eljárások: set(), get(), mag(), add(), sub(), normalize(), …
9
ArrayList példa ArrayList al = new ArrayList(); al.add(new PVector(3, 2)); al.add(new PVector(35, 22)); for (int i=0; i<al.size(); ++i) { PVector p = (PVector)al.get(i); print(p); }
10
Feladat 2 Írjuk programot, ami minden bal egérgombbal történő kattintást rögzít és hozzáadja egy listához. Minden ponthármasra rajzoljunk ki egy háromszöget.
11
Fájl output PrintWriter: Fájlba kiírásra Használat: StreamWriter w = createWriter(“file.txt”); Eljárások: print() println() flush() close()
12
Fájl input String[] loadStrings( ) : Betölti a paraméterben kapott fájlt soronként, visszaadja a beolvasás eredményét Használat: String lines[] = loadStrings("szoveg.txt");
13
Szövegek feldolgozása String[] split(str, delim): –String gy = "alma, korte”; String[] l = split(gy, ','); String[] splitTokens(str, delims): –String gy = "alma, korte; eper”; String[] l = splitTokens(gy,“,;”);
14
String osztály Eljárások Java-ból ami ismerős: substring(int fi, int li); trim() … Számmá alakítás: parseInt(s); parseFloat(s);
15
Feladat 3 Az „s” billentyű lenyomására lehessen fájlba menteni az aktuális állapotot! Az „l” billentyű segítségével pedig töltsük vissza a legutóbbit!
16
Szövegkirajzolás PFont: A Processing karakterkészlet osztálya Használat: PFont fnt = createFont("Arial", 12); textFont(PFont): Az aktuális kirajzolási karakterkészletet a paraméterben kapottra módosítja text(str, x, y[, w, h, z]) textSize(int)
17
Szövegkirajzolás textAlign(xAlign, yAlign): vízszintes és függőleges szövegigazítás, lehetséges értékei LEFT, CENTER, RIGHT loadFont(fájlnév): külső fájlból tölthetünk be vele karaterkészletet PFont fnt = loadFont("font.flw");
18
Példa void setup() { size(600,600); PFont fnt = createFont("Arial",20) ; textFont(fnt) ; } void draw() { text("Helló",100,100) ; }
19
Feladat 4 Minden kattintásra annak helyére írjátok ki a kattintás gombját és pozicióját.
20
Osztályok Osztályok definiálása szokásos módon: class OsztNev { void fv() {...} int i; }
21
Osztályok Az osztály egy példányának létrehozása szintén: OsztNev o = new OsztNev();
22
Feladat Írjatok egy PattogoKor osztályt! Legyen szín és sugár jellemzője Szóköz billentyű megnyomására jöjjön létre egy új pattogó kör, ami a képernyő keretein belül pattog! (véletlen sugár és szín attributumokkal) NEHEZÍTÉS (Házi Feladat): A körök egymásról is pattanjanak vissza
23
Feladat Csináljunk egy Teglalap osztályt! Legyen pozíció és szélesség/magasság, szin adattagja Szóköz lenyomására jelenjen meg egy a képernyőn (véletlen helyen, véletlen attributumokkal) A téglalap közepére legyen beleírva színe RGB kódja, és a poziciója A téglalap kirajzolásáért annak Draw() metódusa feleljen
24
Feladat / Házi feladat Jobb gombbal való kattintásra változzon a téglalap kapjon új véletlen színt Bal egérgombbal lehessen a kiválasztott téglalapot előtérbe hozni Legyen lehetőség a bal egérgombbal a téglalap vonszolására Törekedjetek az OOP elvű megvalósításra!
Hasonló előadás
© 2024 SlidePlayer.hu Inc.
All rights reserved.