Előadást letölteni
Az előadás letöltése folymat van. Kérjük, várjon
KiadtaKornélia Vörösné Megváltozta több, mint 10 éve
1
Számítógépes Grafika 1. gyakorlat Programtervező informatikus (esti) 2009/2010 őszi félév
2
Információk ETR kód: IP-eSZG1G Időpont: kedd, 17:00-18:30 Helyszín: nyelvi labor Jegyszerzés: két beadandó + egy elméleti zh Gyakorlati diák: http://people.inf.elte.hu/valasek/bevgraf_esti http://people.inf.elte.hu/valasek/bevgraf_esti
3
Mire lesz szükség Processing: http://processing.org/download/http://processing.org/download/
4
Ajánlott irodalom Processing reference: http://processing.org/reference/ http://processing.org/reference/ Casey Reas, Ben Fry: Processing: A Programming Handbook for Visual Designers and Artists
5
Processing Java-ra épülő nyelv, grafikus, interaktív, vizualizációs alkalmazások fejlesztésére Nem szükséges előzetes Java tudás Tud futtatható fájlba exportálni Linux, Mac és Windows alá is Saját IDE-vel jön: Processing Development Environment
6
Példaprogram 1
8
Utasítások print(s): – A státuszsorba ír – Konkatenáció jele: + – Támogatott típusok: boolean, byte, char, color, int, float, String, Object float a = 4.3; int b = 2; print(“a = “ + a + “ és b = “ + b);
9
Utasítások println(s): – Új sort kezd – A print típusain túl tömböket is meg tud jeleníteni float[] a = {4.3, 2.4, 3, 5}; println(a);
10
Utasítások Kommentek a szokásos módon: // egysoros komment print(“Hello!”); /* hosszú komment */
11
Alap típusok long color double char float int boolean byte
12
Példaprogram 2 // Helló Vonal példaprogram line(15, 25, 70, 90);
13
Példaprogram 2
14
Utasítások size(width, height): (több később) – A megjelenítő ablak méretének beállítása line(fromX, fromY, toX, toY): – KKR-ben, tehát (0,0) a bal-felső sarok (0,0)X Y
15
Utasítások stroke(r, g, b [, t] ): – A kirajzolás vonalának színe – Minden paraméter 0-255 között – A t az átlátszóság – stroke(s [, t]): r=g=b=s, pl. stroke(255) = fehér background(r, g, b [, t] ): – Háttérszín beállítása – Egyúttal törli is a képernyő tartalmát
16
Példaprogram 3 size(400, 400); background(192, 64, 0); stroke(255); line(150, 25, 270, 350);
17
Példaprogram 3’ size(400, 400); color bg = color(192, 64, 0); color st = color(255); background(bg); stroke(st); line(150, 25, 270, 350);
18
Processing A programokat sketch-eknek hívják Háromféle módon programozható: – Alap – Folytonos – Java
19
Példaprogram 4 void setup() { size(400, 400); stroke(255); background(32, 64, 16); } void draw() { line(0, 0, mouseX, mouseY); }
20
Processing Az előző kód már folytonos típusú volt A setup() függvény a program inicializálásakor A draw() minden egyes képkocka kirajzolásakor meghívódik
21
Utasítások mouseX, mouseY: – Az egér pillanatnyi X és Y koordinátái (KKR) rect(x, y, width, height): – Egy téglalapot rajzol ki – Bal-felső sarka: (x,y) – szélessége/magassága: width/heigth random(min, max) fill(r, g, b [, t] ): – Kitöltési szín zárt alakzatok rajzolásakor
22
Feladat 1 Az egérmutató pozíciójába egy 10x10-es négyzet kirajzolása véletlenszerű kitöltési- és keretszínnel
23
Feladat 2 Az egérmutató pozíciójába egy 10x10-es négyzet kirajzolása véletlenszerű kitöltési- és keretszínnel Ne látszódjanak a korábbi képkockákban kirajzolt dolgok
24
Egér mouseDragged(): – Meghívásra kerül, ha mozgatják az egeret és közben valamelyik gomb nyomva van mouseMoved(): – Az egér mozgatásakor hívódik meg mouseClicked(): – Meghívódik ha valamelyik egérgombot megnyomták majd felengedték
25
Egér mousePressed(): – Egérgomb lenyomásakor hívódik – A mousePressed bool típusú változó azt tárolja le van-e nyomva egy egérgomb mouseReleased(): – Egérgomb felengedésekor hívódik
26
Egér változók mouseButton: – melyik egérgomb van lenyomva – LEFT, RIGHT, CENTER mousePressed: – Változó, true, ha le van nyomva egy egérgomb pmouseX, pmouseY: – Az X és Y irányú elmozdulás mértéke a legutóbbi pozícióhoz képest – Más a draw() és más az egér callback függvényekben!
27
Billentyűzet keyType(): – Az OS billentyűismétlési szabályának megfelelően hívódik meg – A módosítók (ctrl, alt, shift stb.) nincsenek figyelembe véve keyReleased(): – Billentyű felengedésekor – A felengedett billentyű: Nem ASCII karakterek: keyCode ASCII karakterek: key
28
Billentyűzet keyPressed(): – Lenyomott billentyű: Nem ASCII karakterek: keyCode ASCII: key Megjegyzés: – ASCII specifikációban benne vannak ezek is: BACKSPACE, TAB, ENTER, RETURN, ESC, DELETE PC, Linux, …: ENTER Mac: RETURN – Iránybillentyűk keyCode-ban (UP, DOWN, LEFT, RIGHT)
29
Utasítások A szokásos módon: – switch-case – for ciklus – if-else
30
Billentyűzet void keyPressed() { switch (keyCode) { case UP: // felfelé break; } if (key == ‘c’) { // c }
31
Példaprogram 5 void setup() { size(400, 400); stroke(255); } void draw() { background(32, 64, 16); strokeWeight(10); point(mouseX, mouseY); }
32
Utasítások strokeWeight(w): – A vonalvastagság pixelben, nemnegatív érték kell legyen int millis() – Az alkalmazás indítása óta eltelt idő ms-ben year(), month(), day(), hour(), minute(), second(): – Aktuális dátum – Mind int, megfelelő intervallumokból sin(x), cos(x): – Az x radiánban adott
33
Feladat 3 Periodikusan változzon a kirajzolt pont nagysága
34
Feladat 4 Periodikusan változzon a kirajzolt pont nagysága Ne töröljük le a képernyőt minden draw()-ban Csak akkor rajzoljunk, ha az egyik egérgomb nyomva van tartva Véletlenszerűen változzon a kirajzolás színe A smooth() hívásával simább képet kapunk
35
noSmooth()smooth()
36
Utasítások pixels[]: – A képernyőn megjelenő színek tömbje, width x height nagyságú – (x,y) színe pixels[y*width + x] – Használata előtt loadPixels() utasítás kell – Ha módosítottuk a tartalmát updatePixels() visszaírja a képernyőre az adatokat
37
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 – A képet a Sketch/Add file-lal hozzá kell adni a sketch-hez
38
Utasítások image(img, x, y, width, height): – Az img Pimage width x height nagyságú részét a képernyő (x,y) pontjába kirajzolja
39
Példaprogram 6 Először adjuk hozzá a programunkhoz a Dokumentumok képek könyvtárából a Naplemente.jpg-t
40
Példaprogram 6 PImage img; void setup() { size (400, 400); img = loadImage("Naplemente.jpg"); } void draw() { image(img, 0, 0); }
41
Példaprogram 6’ void draw() { image(img, 0, 0); color c = img.pixels[ mouseY*img.width + mouseX]; fill(c); stroke(0); rect(mouseX+1, mouseY-11, 10, 10); }
42
Feladat Írjunk egy nagyítót: a kurzor által mutatott pozíció körüli 10x10-es részt nagyítsuk ki a tízszeresére
44
Segítség Egy sor kirajzolása: for (int i=-5; i<5; ++i) { int x = constrain(mouseX+i, 0, img.width); color l = img.pixels[ mouseY*img.width + x]; fill(l); rect(mouseX+1+(i+5)*10, mouseY-11, 10, 10); }
Hasonló előadás
© 2024 SlidePlayer.hu Inc.
All rights reserved.