Alkalmazott Informatikai Intézeti Tanszék MŰSZAKI INFORMATIKA Dr.Dudás László 0. MATLAB alapismeretek VII. Eredmények, objektumok grafikus megjelenítése 3D felületek rajzoló függvényei
Alkalmazott Informatikai Intézeti Tanszék MŰSZAKI INFORMATIKA Dr.Dudás László 1. Eredmények, objektumok grafikus megjelenítése - surf téglalap tartomány feletti árnyalt felület megjelenítése - surfc Téglalap feletti színezett felület vetített szintvonalakkal - axis A megjelenített 3D ábra tengelyei - view A megjelenített 3D ábra elforgatása, nézési iránya - camlight Megvilágítás iránya - surface Általános, paraméterezhető felületobjektum-rajzoló. Mosolygó: Varga Jenő Magyarerő.hu
Alkalmazott Informatikai Intézeti Tanszék MŰSZAKI INFORMATIKA Dr.Dudás László 2. Téglalap feletti árnyalt felület surf részletesebben - surf(z) Az x,y rács feletti z értékek ábrázolása színezett felülettel, a z magasságot a színek érzékeltetik. A kétváltozós felület z=f(x,y) függvény rácsának megadásához célszerű használni a meshgrid függvényt - meshgrid Egy x vektor értékeinek az X mátrix soraiba való másolásával állítja elő az X mátrixot és az y vektor elemeinek az Y mátrix oszlopaiba való másolásával az Y mátrixot. x 1 2 3 Y [X,Y] y 1 2 3 5 5 5 5 1, 5 2, 5 3, 5 X 1 2 3 7 7 7 7 1, 7 2, 7 3, 7 1 2 3 9 9 9 9 1, 9 2, 9 3, 9
Alkalmazott Informatikai Intézeti Tanszék MŰSZAKI INFORMATIKA Dr.Dudás László 3. Téglalap feletti árnyalt felület.. surf - surf(z) az x,y rács feletti z értékek ábrázolása színezett felülettel, a z magasságot a színek érzékeltetik. [X,Y] = meshgrid( -8 : 0.5 : 8 ); R = sqrt( X.^ 2 + Y.^ 2 ) + eps; % R az origótól vett táv Z = sin(r)./ R; % eps megelőzi a 0-val való osztást surf (Z)
Alkalmazott Informatikai Intézeti Tanszék MŰSZAKI INFORMATIKA Dr.Dudás László 4. Téglalap feletti színezett felület.. surf - surf(z,c) az x,y rács feletti z értékek ábrázolása színezett felülettel, a C mátrixban adottak a színek. C és Z azonos osztású mátrixok. [X,Y] = meshgrid( -3 : 3 ); Z = X; C = [ 1 0 1 0 1 0 1; 0 1 0 1 0 1 0; 1 0 1 0 1 0 1; 0 1 0 1 0 1 0; 1 0 1 0 1 0 1; 0 1 0 1 0 1 0; 1 0 1 0 1 0 1]; surf (Z, C)
Alkalmazott Informatikai Intézeti Tanszék MŰSZAKI INFORMATIKA Dr.Dudás László 5. Téglalap feletti színezett felület.. surf - surf(x,y,z) az x,y rács feletti z értékek ábrázolása színezett felülettel, X és Y vektorok, vagy mátrixok. - axis( [xmin xmax ymin ymax zmin zmax] ) tengelyhatárok X = [ 1 2 3]; Y = [ 1 2 3 4 5]; Z = [ 1 2 3; 2 4 6; 3 6 9; 4 8 12; 5 10 15]; surf (X,Y,Z) axis ([1 3 1 5 1 15]) % X vektor és Y is vektor
Alkalmazott Informatikai Intézeti Tanszék MŰSZAKI INFORMATIKA Dr.Dudás László 6. Téglalap feletti színezett felület vetített szintvonalakkal surfc - surfc(x,y,z) az x,y rács feletti z értékek ábrázolása színezett felülettel, Z=0 síkra vetített szintvonalakkal [X,Y,Z] = peaks(30); surfc (X,Y,Z) % peaks() egy látványos MATLAB fv Vetített szintvonalak
Alkalmazott Informatikai Intézeti Tanszék MŰSZAKI INFORMATIKA Dr.Dudás László 7. Téglalap feletti színezett felület paraméterbeállításokkal - surf(x,y,z, paraméterek) surf [X,Y,Z] = peaks(30); surf(x,y,z, FaceColor, interp, EdgeColor, none, FaceLighting, phong ) % további látványfokozó elemek % tengelyzoom: daspect ([5 5 10]) axis tight % lásd később view(-50, 30) % nézésirány camlight left % világítás irány
Alkalmazott Informatikai Intézeti Tanszék MŰSZAKI INFORMATIKA Dr.Dudás László 8. A megjelenített 3D ábra tengelyei axis A tengelyek megjelenése, beállítása többféle lehet - axis ([xmin xmax ymin ymax]) % limitek megadása % színskála limitek is: - axis ([xmin xmax ymin ymax zmin zmax cmin cmax]) - axis tight % limitek az ábrázolt adatok alapján beállítva - axis equal % azonos nagyítás a tengelyeken - axis normal % a tengelynagyítás és a skálázás a tengelyeken % olyan, hogy a legjobban illeszkedjen az ábra formájához - axis off % nincs tengelyvonal, beosztás és címkézés % megjelenítés - axis on % van tengelyvonal, beosztás és címkézés megjelenítés - axis vis3d % forgatáshoz befagyasztja a nagyítási arányokat a % tengelyeken és nem engedi a nagyítást az ábrakitöltéshez
Alkalmazott Informatikai Intézeti Tanszék MŰSZAKI INFORMATIKA Dr.Dudás László 9. A megjelenített 3D ábra elforgatása, nézési iránya view - view(korbejaras, billentes) -Y = 0 korbejaras szoge pozitív, ha a szem óramutatóval ellentétes irányba mozog, billenes pozitív, ha a szem felfelé mozog [X,Y,Z] = peaks(30); view([90, 0]) surf(x,y,z) +Y view([45, 45]) [X,Y,Z] = peaks(30); surf(x,y,z) view([0, 0]) -X +X +X -Y view([45,60]) +Y +Y +X
Alkalmazott Informatikai Intézeti Tanszék MŰSZAKI INFORMATIKA Dr.Dudás László 10. A megjelenített 3D ábra elforgatása, nézési iránya view - view(szem_x, szem_y, szem_z) szem pozíciója a nézéshez [X,Y,Z] = peaks(30); surf(x,y,z) view([1, 1, 1]) Z +X +Y +X -X [X,Y,Z] = peaks(30); surf(x,y,z) view([100, 0, 0]) -Y +Y view([0,10,0])
Alkalmazott Informatikai Intézeti Tanszék MŰSZAKI INFORMATIKA Dr.Dudás László 11. Megvilágítás iránya camlight - camlight ( headlight ) % camerapozícióból világít - camlight ( right ) % kamerától jobbra és fentebbről - camlight ( left ) % kamerától balra és fentebbről - camlight (korbejaras, billentes) % kamerához viszonyított % elforgatási és rálátási szöggel - local % a fényforrás pontból mindenfelé induló sugarakkal % sugároz - infinite % a fényforrás párhuzamos sugarakkal sugároz
Alkalmazott Informatikai Intézeti Tanszék MŰSZAKI INFORMATIKA Dr.Dudás László 12. Megvilágítás iránya.. camlight Példa: A fényforrás a kamerától balra van és követi a pozíciója a kamera 360 fokos körbe mozgását (az ábra forog): surf(peaks) axis vis3d h = camlight( left ); % h a handle for i = 1 : 20; camorbit(10, 0) % a h handlében megadott % világítási beállítást használja: camlight(h, left ) drawnow; % ábra újrarajzolása end
Alkalmazott Informatikai Intézeti Tanszék MŰSZAKI INFORMATIKA Dr.Dudás László 12. Megvilágítás iránya.. camlight Példa: A fényforrás a kamerától balra van és követi a pozíciója a kamera 360 fokos körbe mozgását (az ábra forog): surf(peaks) axis vis3d h = camlight( left ); % h a handle for i = 1 : 20; camorbit(10, 0) % a h handlében megadott % világítási beállítást használja: camlight(h, left ) drawnow; % ábra újrarajzolása end
Alkalmazott Informatikai Intézeti Tanszék MŰSZAKI INFORMATIKA Dr.Dudás László 13. Általános, paraméterezhető felületobjektum-rajzoló surface Csak tájékoztatásként jegyezzük meg, hogy létezik ez a függvény is a felületek létrehozásához maximális szabadságot nyújtva, pl. a felület textúrázható, állítható az átlátszósága, megvilágítási viszonyai, stb. Teljesen objektumorientáltan kezelhető, programozható, vannak sajátosságai és események történnek rajta.