MATLAB grafika gyakorlatok

Hasonló dokumentumok
MATLAB alapismeretek IV. Eredmények grafikus megjelenítése: vonalgrafikonok

SCILAB programcsomag segítségével

Lengyelné Dr. Szilágyi Szilvia április 7.

sin x = cos x =? sin x = dx =? dx = cos x =? g) Adja meg a helyettesítéses integrálás szabályát határozott integrálokra vonatkozóan!

x = cos αx sin αy y = sin αx + cos αy 2. Mi a X/Y/Z tengely körüli forgatás transzformációs mátrixa 3D-ben?

Matematika II. 1 sin xdx =, 1 cos xdx =, 1 + x 2 dx =

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

Függvények ábrázolása

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI KÖZÉP SZINT Függvények

SZE, Doktori Iskola. Számítógépes grafikai algoritmusok. Összeállította: Dr. Gáspár Csaba. Felületmegjelenítés

Függvények Megoldások

Matlab alapok. Baran Ágnes. Grafika. Baran Ágnes Matlab alapok Grafika 1 / 21

ANALÍZIS II. Példatár

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI KÖZÉPSZINT Függvények

b) Ábrázolja ugyanabban a koordinátarendszerben a g függvényt! (2 pont) c) Oldja meg az ( x ) 2

Bevezető. Mi is az a GeoGebra? Tények

0-49 pont: elégtelen, pont: elégséges, pont: közepes, pont: jó, pont: jeles

Számítógépes Grafika mintafeladatok

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK KÖZÉP SZINT Függvények

Eredmények, objektumok grafikus megjelenítése 3D felületek rajzoló függvényei

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK KÖZÉPSZINT Függvények

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI KÖZÉPSZINT Függvények

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

2014/2015. tavaszi félév

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK KÖZÉP SZINT Függvények

KOVÁCS BÉLA, MATEMATIKA II.

Matematika II képletek. 1 sin xdx =, cos 2 x dx = sh 2 x dx = 1 + x 2 dx = 1 x. cos xdx =,

Mechatronika segédlet 3. gyakorlat

MATLAB alapismeretek III.

KOVÁCS BÉLA, MATEMATIKA II.

BME MOGI Gépészeti informatika 15.

Matematika szigorlat június 17. Neptun kód:

(Solid modeling, Geometric modeling) Testmodell: egy létező vagy elképzelt objektum digitális reprezentációja.

MATLAB alapismeretek V. Eredmények grafikus megjelenítése: oszlopdiagramok, hisztogramok, tortadiagramok

1. tétel. 1. Egy derékszögű háromszög egyik szöge 50, a szög melletti befogója 7 cm. Mekkora a háromszög átfogója? (4 pont)

Bevezetés a QGIS program használatába Összeálította dr. Siki Zoltán

Széchenyi István Egyetem. Informatika II. Számítási módszerek. 5. előadás. Függvények ábrázolása. Dr. Szörényi Miklós, Dr.

Termék modell. Definíció:

Az egyenlőtlenség mindkét oldalát szorozzuk meg 4 16-al:

A Paint program használata

Egyenletek, egyenlőtlenségek grafikus megoldása TK. II. kötet 25. old. 3. feladat

Matematika osztályozó vizsga témakörei 9. évfolyam II. félév:

Az egyenes egyenlete: 2 pont. Az összevont alak: 1 pont. Melyik ábrán látható e függvény grafikonjának egy részlete?

Számítógépes Grafika mintafeladatok

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

Matematika III előadás

Eredmények, objektumok grafikus megjelenítése 3D felületek rajzoló függvényei.. Beépített 3D felületek rajzoló függvényei

Baran Ágnes. Gyakorlat Halmazok, függvények, Matlab alapok. Baran Ágnes Matematika Mérnököknek Gyakorlat 1 / 34

Számítógépes Grafika SZIE YMÉK

Koordinátageometria. , azaz ( ) a B halmazt pontosan azok a pontok alkotják, amelynek koordinátáira:

Henger és kúp metsződő tengelyekkel

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

Kétváltozós függvények differenciálszámítása

Matematika I. Vektorok, egyenesek, síkok

függvény grafikonja milyen transzformációkkal származtatható az f0 : R R, f0(

Rajz 01 gyakorló feladat

A Cassini - görbékről

Az f ( xy, ) függvény y változó szerinti primitív függvénye G( x, f xydy= Gxy + C. Kétváltozós függvény integrálszámítása. Primitívfüggvény.

Két körhenger általánosabban ( Alkalmazzuk a vektoralgebrát! ) 1. ábra

Infobionika ROBOTIKA. X. Előadás. Robot manipulátorok II. Direkt és inverz kinematika. Készült a HEFOP P /1.0 projekt keretében

KOVÁCS BÉLA, MATEMATIKA I.

Mathematica automatikusan dolgozik nagy pontossággal, például 3 a 100-dik hatványon egy szám 48 tizedes jeggyel:

1. zárthelyi,

Klár Gergely 2010/2011. tavaszi félév

Komputeralgebra rendszerek

Számítógépes geometria (mester kurzus) III

1. kép. A Stílus beállítása; új színskála megadása.

Függvény fogalma, jelölések 15

4. Felületek Forgásfelületek. Felületek 1. Legyen adott egy paramétersíkbeli T tartomány. A paramétersíkot az u és v koordinátatengelyekkel

Többváltozós, valós értékű függvények

Matematikai geodéziai számítások 10.

törtet, ha a 1. Az egyszerűsített alak: 2 pont

1. Tekintsük a következő két halmazt: G = {1; 2; 3; 4; 6; 12} és H = {1; 2; 4; 8; 16}. Elemeik felsorolásával adja meg a G H és a H \ G halmazokat!

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

Geometriai modellezés. Szécsi László

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

Transzformációk. Grafikus játékok fejlesztése Szécsi László t05-transform

Az egyenes ellipszishenger ferde síkmetszeteiről

6. Függvények. 1. Az alábbi függvények közül melyik szigorúan monoton növekvő a 0;1 intervallumban?

Minta 2. MATEMATIKA KÖZÉPSZINTŰ ÍRÁSBELI FELADATSOR. I. rész

MATEMATIKA PRÓBAÉRETTSÉGI 2013 I. rész

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

2. Adott a valós számok halmazán értelmezett f ( x) 3. Oldja meg a [ π; π] zárt intervallumon a. A \ B = { } 2 pont. függvény.

MATEMATIKA ÍRÁSBELI VIZSGA május 5.

Koordinátarendszerek

Diagram készítése. Diagramok formázása

A bifiláris felfüggesztésű rúd mozgásáról

Adatelemzés SAS Enterprise Guide használatával. Soltész Gábor solteszgabee[at]gmail.com

10. Differenciálszámítás

MATLAB. 5. gyakorlat. Polinomok, deriválás, integrálás

6. Függvények. Legyen függvény és nem üreshalmaz. A függvényt az f K-ra való kiterjesztésének

Követelmény a 7. évfolyamon félévkor matematikából

Kisérettségi feladatgyűjtemény

KÉPFELDOLGOZÁS. 10. gyakorlat: Morfológiai műveletek, alakjellemzők

Matematika szóbeli érettségi témakörök 2016/2017-es tanév őszi vizsgaidőszak

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

2) Írja fel az alábbi lineáris függvény grafikonjának egyenletét! (3pont)

Az elliptikus hengerre írt csavarvonalról

Geometriai alapok Felületek

Osztályozóvizsga és javítóvizsga témakörei Matematika 9. évfolyam

Átírás:

MATLAB grafika gyakorlatok 2.01-es verzió Bevezető Az összefoglaló kettős céllalt készült. Egyrészt a MATLAB grafikus lehetőségeibe kiván nem teljes igényű bepillantást nyújtani, másrészt a különböző függvénytípusok használatának a bemutatása. A Numerikus módszerek tárgy gyakorlatainak segédlete. A cél a vizualizáció, az elméleti anyag szemléltetése és ezen keresztül annak könnyebb feldolgozhatósága. Az ismertetőben a funkcióhoz tartozó eljárás ismertetése után példa segíti a megértést és az alkalmazást. Matematikai magyarázatok nem képezik ezen anyag részét, ez az előadás, illetve más tárgyak feladata. Tartalomjegyzék Kétdimenziós ábrázolások... 2 Függvények, adatsorok megadása... 2 Grafikon formázási lehetőségek... 2 Kiegészítő grafikus utasítások... 3 y=f(x) alakú egyváltozós függvények (skalár-skalár függvény)... 3 x=f(t), y=g(t) koordináta-függvényű paraméteres görbe (vektor-skalár függvény)... 4 (x,y)=0 alakú implicit függvény ábrázolása... 6 r=f(), =[t1,t2] polárkoordinátás ábrázolás... 7 Háromdimenziós ábrázolások... 8 x=f(t), y=g(t), z(t) koordináta-függvényű paraméteres görbe (vektor-skalár függvény)... 8 Függvények, adatsorok megadása... 9 Megjelenítési lehetőségek... 10 z=f(x,y) alakú kétváltozós függvények vetített megjelenítése (skalár-vektor függvény)... 10 Kétváltozós függvény szintvonalas megjelenítése (skalár-vektor függvény)... 10 x=f(u,v), y=g(u,v), z=h(u,v) koordináta-függvényű felület (kétparaméteres vektor-skalár függvény)... 11 Összetett felületek konstruálása... 12 Áthatási görbe számítása és megjelenítése... 13 Terep megjelenítése... 14 Általános térbeli paraméteres megjelenítés... 16 Poligonok megjelenítése... 17 1 / 19

Kétdimenziós ábrázolások A megjelenítésekhez szükséges az értelmezési tartomány és az értékkészlet megfelelő megadása. Ez az alábbi módokon történhet. Függvények, adatsorok megadása Adatok vektorban tárolása - általánosabb és nagyobb szabadságfokú használatot eredményez: plot(x,y, ) függvény-csoport. Pl.: Az összetartozó x,y értékeket vektorba helyezzük. x=-2:.1:2 y=1./(1.+x.*x) A formula elhelyezése karakterláncban - könnyebben kezelhető és átláthatóbb: ezplot(fvstring,[x1,x2]) függvény-csoport. Pl.: Képlet defíniálása. fvstring='1/(1+x*x)' A formula elhelyezése szimbolikus kifejezésben - könnyebben kezelhető és átláthatóbb: ezplot(fvkeplet,[x1,x2]) függvény-csoport. Pl.: Képlet defíniálása. Syms x fvkeplet=1/(1+x*x) Felhasználói függvény (anonymous function) definiálása - könnyebben kezelhető és általánosabb a fentieknél: ezplot(fv,[x1,x2]) függvény-csoport. fv=@(x)1/(1+x*x) Külön file-ba helyezett függvény (function) készítése - nehézkesebben kezelhető, de a legnagyobb általánosságot adja: ezplot(@fv,[x1,x2]) függvény-csoport. Function y=fv(x) y=1/(1+x*x) end A továbbiakban mindegyikre látunk példát, de az ezplot használati módot részesítettük előnyben. Grafikon formázási lehetőségek Helyes rajzolási utasítás után megjelenik a Figure ablak. Formázására két lehetőség van. Formázó eljárások és paraméterek használatával a parancssorból. Interaktív úton a Figure ablakból A grafikon objektum fontosabb állítható tulajdonságai: Ablak háttérszín, cím. Koordinátaháló x,y tengely és háló, style (feliratok színek), aspect (torzítás). Vonal vonalstílus, vastagság, szín, markerek. Parancssorból használható fontosabb vezérlőparaméterek (használatát lásd későbbi példákban): szín: angol szavak kezdőbetűi pl. r: piros, b: kék marker: +,*,x,.,o használatukkor nincs vonalhúzás Interaktív módban aktivizálni kell az Edit plot ikont, majd a megfelelő helyen dupla klikk az egérrel. A témacsoporthoz tartozó tulajdonságok dialógus lapon módosíthatók. 2 / 19

Kiegészítő grafikus utasítások A rajzi output helye a Figure ablak, mely sorszámmal vezérelhető a parancssorból. Egy rajzi utasítás alapértelmezetten törli az ablak tartalmát és utána jelenít meg. Hasznos utasítások a parancssorból: figure(n) : az n. ablak legyen aktív, vagy nyíljon meg. hold on : további rajzutasítások engedélyezése az aktív ablakra. Kikapcsolás: off paraméter. subplot(n,m,k) : egy figure-n belül több ablak megadása (mozaikszerűen): n sor, m oszlop kialakítása, k. ablak legyen aktív (sorfolytonosan számolva). axis([x1,x2,y1,y2]) : koordinátaablak megadása. grid on : beállított vagy alapértelmezett koordinátaháló rajzolása. Kikapcsolás: off paraméter. A fentiek interaktív módban is megadhatók a megfelelő dialóguslapon. y=f(x) alakú egyváltozós függvények (skalár-skalár függvény) Ebben az esetben az x tengelyhez intervallumot adunk meg, azaz ez lesz a függvény független változója. Az értékkészletet vektorba helyezzük, vagy formálisan definiáljuk. Az alábbi öt utasításcsoport eredménye egyenértékű (fenti példák alkalmazása): 1. x=-2:.1:2 y=1./(1.+x.*x) plot(x,y) 2. ezplot('1/(1+x^2)',[-2,2]) az ÉT: [-2,2] zárt intervallum. 3. fvstring='1/(1+x^2)' ezplot(fvstring,[-2,2]) 4. fv=@(x)1/(1+x^2) ezplot(fv,[-2,2]) A formázás automatikusan alapértelmezett módon történt: 1/(1+x 2 ) 1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2-2 -1.5-1 -0.5 0 0.5 1 1.5 2 x 3 / 19

x=f(t), y=g(t) koordináta-függvényű paraméteres görbe (vektor-skalár függvény) Skalár intervallumot képezünk le a sík pontjaiba (helyvektorba). Mindkét tengely vektor, kifejezés vagy függvény, egy változó értékkészletével. Pl.: egységsugarú kör és koordinátafüggvényeinek megjelenítése a paraméterintervallum normálásával. t=0:0.01:1; korx=cos(2*pi*t); kory=sin(2*pi*t); A koordinátafüggvények egy ábrán (páronként vesszővel elválasztva): plot(t,korx,t,kory) 1 0.8 0.6 0.4 0.2 0-0.2-0.4-0.6-0.8-1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 A grafikon további beállításokkal (interaktív módon): háló mindkét tengelyen vonalvastagság: 2 vonalszínek: kék, piros tengely, kommentár és címfeliratok 4 / 19

A kör megjelenítése: plot(korx,kory) Lineáris spirál (körből származtatva): Négyszer tekeredik. t=0:0.01:4; A vezérsugár arányos az elfordulással. A koordináta-függvények és megjelenítésük: spx=t.*cos(2*pi*t); spy=t.*sin(2*pi*t); plot(t,spx,t,spy) 4 3 2 1 0-1 -2-3 -4 0 0.5 1 1.5 2 2.5 3 3.5 4 plot(spx,spy, b. ) A spirál nyomvonala csak markerekkel és kék színnel lett jelölve, a vektorokban tárolt pontok szemléltetéséhez. 5 / 19

(x,y)=0 alakú implicit függvény ábrázolása Ellipszis megjelenítése: Kanonikus egyenletével adjuk meg, a [-2,2] négyzet tartományon, interaktívan formázva: ezplot('x^2/4+y^2/2-1',[-2,2]) Metsző körök megjelenítése: Kanonikus egyenletükkel szimbolikusan adjuk meg, parancssorból formázva: syms u v kor1=u^2+v^2-4 kor2=(u-1)^2+(v-1)^2-2 6 / 19

v K.Gy. mo=solve(kor1,kor2) % az algebrai egyenlet megoldása; az eredmény rekord formátumban, vektorba kerül szimbolikus típusban h=ezplot(kor1,[-2,2]) % az alpértelmezett szín a kék set(h,'linewidth',2) % az ezplot vonalvastagság állítási lehetősége hold on h=ezplot(kor2,[-1,3]) set(h,'color','c') % az ezplot szinezési lehetősége axis([-2,3,-2,3]) plot(double(mo.u),double(mo.v),'ro') % valós típusra konvertálva 3 (u-1) 2 +(v-1) 2-2 = 0 2.5 2 1.5 1 0.5 0-0.5-1 -1.5-2 -2-1.5-1 -0.5 0 0.5 1 1.5 2 2.5 3 u r=f(), =[t1,t2] polárkoordinátás ábrázolás A szögtengelyen (körív) megadjuk egy intervallummal a független változót, a sugár egy kifejezés vagy függvény. Lineáris spirál (háromszor fordul, elfordulással arányos méretű sugárral): ezpolar('t/2/pi',[0,3*2*pi]) 7 / 19

Háromdimenziós ábrázolások x=f(t), y=g(t), z(t) koordináta-függvényű paraméteres görbe (vektor-skalár függvény) A térgörbe három koordináta-függvényét kell megadni a plot3(x,y,z,...), az ezplot3('x(t)','y(t)','z(t)',[t1,t2], ), vagy az ezplot3(fv_x,fv_y,fv_z,[t1,t2], ) formában. Pl.: henger-, illetve kúp-csavarvonal, egy figure-ben és két ablakban: t=0:0.01:4; csx=cos(2*pi*t); csy=sin(2*pi*t); csz=t; kcsx=t.*cos(2*pi*t); kcsy=t.*sin(2*pi*t); kcsz=t; subplot(1,2,1) plot3(csx,csy,csz) subplot(1,2,2) plot3(kcsx,kcsy,kcsz) Formázási elve megegyezik a 2D-sal. 8 / 19

Függvények, adatsorok megadása Adatok mátrixban tárolása - általánosabb és nagyobb szabadságfokú használatot eredményez (mesh(x,y,z), surf((x,y,z), fill3(x,y,z,szin) függvény-csoport). Az összetartozó X,Y,Z értékeket mátrixba helyezzük. A formula elhelyezése karakterláncban - könnyebben kezelhető és átláthatóbb. ezsurf('x(u,v)','y(u,v)','z(u,v)',[u1,u2,v1,v2], ) függvény-csoport Képlettel defíniálunk és intervallumot adunk meg. A formula elhelyezése szimbolikus kifejezésben - könnyebben kezelhető és átláthatóbb: ezsurf(fvkeplet,[x1,x2,y2,y2]) függvény-csoport. Pl.: Képlet defíniálása. Syms x y fvkeplet=1/(1+x*x)/(1+y*y) Felhasználói függvény (anonymous function) definiálása - könnyebben kezelhető és általánosabb a fentieknél: ezsurft(fv,[x1,x2,y1,y2]) függvény-csoport. fv=@(x,y)1/(1+x*x)/(1+y*y) Külön file-ba helyezett függvény (function) készítése - nehézkesebben kezelhető, de a legnagyobb általánosságot adja: ezsurf(@fv,[x1,x2,y1y2]) függvény-csoport. A megjelenítendő függvényre program írható. Function z=fv(x,y) z=1/(1+x*x)/(1+y*y) end 9 / 19

Megjelenítési lehetőségek Helyes rajzolási utasítás után megjelenik a Figure ablak. Formázására két lehetőség van. Formázó eljárások használatával a parancssorból. Interaktív úton a Figure ablakból A grafikon objektum fontosabb állítható tulajdonságai: Ablak háttérszín, cím. Világítás Insert->Light menüvel helyezhetünk el fényt. Koordinátaháló x,y,z tengely és háló, style (feliratok színek), aspect (torzítás), világítás beállításai. Felület megjelenítési mód (pontmodell, drótváz, élek, kitöltés), szín, világítás alkalmazásával árnyalási módok, anyagválasztás (matt-tükrözés aránya). Interaktív módban aktivizálni kell az Edit plot ikont, majd a megfelelő helyen dupla klikk az egérrel. A témacsoporthoz tartozó tulajdonságok dialógus lapon módosíthatók. z=f(x,y) alakú kétváltozós függvények vetített megjelenítése (skalár-vektor függvény) Az x,y síkbeli téglalap tartományon értelmezett függvényt adunk meg. ezsurf('1/(1+x^2)/(1+y^2)',[-2,2,-2,2]) Kétváltozós függvény szintvonalas megjelenítése (skalár-vektor függvény) A fenti függvény szintvonalasan megjelenítve. ezcontourf('1/(1+x^2)/(1+y^2)',[-2,2]) 10 / 19

x=f(u,v), y=g(u,v), z=h(u,v) koordináta-függvényű felület (kétparaméteres vektor-skalár függvény) Két összerendelt skalár intervallumot (téglalap tartományt) képezünk le a tér pontjaiba (helyvektorba). Másképpen: olyan vektor-vektor függvény mely a sík pontjait képezi le a tér pontjaiba. Készítsük el három "alapfelület" koordináta-függvényét. Mindhárom a körvonalból származtatható. Az értelmezési tartomány egy négyzet pontjai ahol u,v є [0,1] intervallumnak. Hengerpalást: Hx='cos(2*pi*u)'; Hy='sin(2*pi*u)'; Hz='v' ezsurf(hx,hy,hz,[0,1,0,1]) 11 / 19

Körlap: Kx='v*cos(2*pi*u)'; Ky='v*sin(2*pi*u)'; Kz='0' ezsurf(kx,ky,kz,[0,1,0,1]) Kúppalást: Kupx='v*cos(2*pi*u)'; Kupy='v*sin(2*pi*u)'; Kupz='v' ezsurf(kupx,kupy,kupz,[0,1,0,1]) Összetett felületek konstruálása Ismert a felületet alkotó elemi felületek egyenlete. kúp=kúppalást+alaplap Kupz='1-v' ezsurf(kupx,kupy,kupz,[0,1,0,1]) hold on ezsurf(kx,ky,kz,[0,1,0,1]) Az alaplap bemutatásához drótváz megjelenítést választottunk. 12 / 19

Áthatási görbe számítása és megjelenítése Adva két paraboloid. Jelenítsük meg ezeket és húzzuk ki áthatási görbéjüket. Válasszuk a legkényelmesebb utat, szimbolikus változók használatát. syms x y z1=-x^2-2*y^2 z2=-4*(x-1)^2-4*(y+1)^2 mo=solve(z1-z2,y) % y-ra oldjuk meg az egyenletet, ami y(x) függvényt eredményez. z3=-x^2-2*mo(1)^2 % az első megoldást választjuk és visszahelyettesítünk. hold off ezplot3(x,mo(1),z3,[0,2]) % a görbe a három koordinátafüggvény x paramétertől függ hold on colormap([1 0.5 0.5]) % szinezzük a felületeket a példa kedvéért RGB -módon ezsurf(z1,[-2,2,-2,2]) ezsurf(z2,[-2,2,-2,2]) axis([-2,2,-2,2,-6,0]) 13 / 19

z K.Gy. -4 (x-1) 2-4 (y+1) 2 0-1 -2-3 -4-5 2-6 2 1.5 1 0.5 0-0.5 y -1-1.5-2 -2 0 x Terep megjelenítése A terep magassági mintavételi pontjai egy szabályos rács pontjaiban vannak megadva. A rács x koordinátáira: 1000<=x<=1500, y koordinátáira: 500<=x<=1000. A formázást parancssorból végezzük. A magassági értékek mátrixa: Z = 162.3000 168.1000 171.4000 170.6000 166.8000 164.9000 165.4000 170.7000 174.3000 173.0000 170.3000 165.5000 168.5000 170.8000 172.1000 171.5000 168.9000 169.7000 164.5000 167.8000 164.3000 167.7000 164.9000 163.1000 160.8000 162.4000 163.1000 163.5000 162.9000 159.3000 158.4000 159.9000 158.2000 157.1000 159.6000 160.8000 subplot(2,2,1) mesh(z,'marker','.','edgecolor','b') % mitapontok és rácsháló axis([1,6,1,6]) subplot(2,2,2) surf(z,'edgecolor','c','facecolor','b') % festett megjelenítés a hálóval axis([1,6,1,6]) subplot(2,2,3) [X Y]=meshgrid(1000:100:1500,500:100:1000); % valódi x,y koordináták generálása X = 1000 1100 1200 1300 1400 1500 1000 1100 1200 1300 1400 1500 1000 1100 1200 1300 1400 1500 1000 1100 1200 1300 1400 1500 14 / 19

Y = 1000 1100 1200 1300 1400 1500 1000 1100 1200 1300 1400 1500 500 500 500 500 500 500 600 600 600 600 600 600 700 700 700 700 700 700 800 800 800 800 800 800 900 900 900 900 900 900 1000 1000 1000 1000 1000 1000 surf(x,y,z,'edgecolor','none','facecolor','b','facelighting','flat') % laponkénti árnyalás light('position',[0 0 1],'Style','infinite'); % világítás adott irányból axis([1000,1500,500,1000]) [x y]=meshgrid(1000:10:1500,500:10:1000) z=interp2(x,y,z,x,y,'spline') % sűrített háló készítése spline interpolációval subplot(2,2,4) surf(x,y,z,'edgecolor','none','facecolor','b','facelighting','phong') % interpolált árnyalás light('position',[0 0 1],'Style','infinite'); axis([1000,1500,500,1000]) 15 / 19

Általános térbeli paraméteres megjelenítés Az adatmegadás elve: a felület egy (x, y, z) pontja három téglalaprács azonos indexpárú értéke. A paramétertartomány: iє[1 n], jє[1 m]. Ezzel [ x i,j ], [ y i,j ] és [ z i,j ] mátrixok adják a felület pontjait. A felület paramétervonalait az azonos i és azonos j indexű koordinátahármasai alkotják. Jelenítsünk meg egy r=1 sugarú göböt. Származtassunk le ebből egy olyan felületet, melyet véletlenszerűen deformálunk paramétervonalai metszéspontjában. A formázást parancssorból végezzük. n=24; [X Y Z]=sphere(n); % a gömb pontjainak koordinátáit 25x25-ös mátrixokban kapjuk (könyvtári függvény). subplot(1,2,1) surf(x,y,z,'facecolor','c','edgecolor','none','facelighting','phong') light('position',[0 0 1],'Style','infinite'); axis equal dr=.15; % max. dr amplitúdójú deformációk készítése for i=1:n for j=1:n s=1+dr*(rand-.5); % torzító tényező sorsolása X(i,j)=s*X(i,j); Y(i,j)=s*Y(i,j); Z(i,j)=s*Z(i,j); end X(i,n+1)=X(i,1); % folytonos záródás Y(i,n+1)=Y(i,1); Z(i,n+1)=Z(i,1); end for j=1:n+1 X(n+1,j)=X(1,j); % folytonos záródás Y(n+1,j)=Y(1,j); Z(n+1,j)=Z(1,j); end subplot(1,2,2) surf(x,y,z,'facecolor','c','edgecolor','none','facelighting','gouraud') light('position',[0 0 1],'Style','infinite'); axis equal 16 / 19

Poligonok megjelenítése Amennyiben alakzatainkat síkok poligonok határolják, használhatjuk a fill3(x,y,z,colorspec) grafikus függvényt. Az eljárás X,Y,Z vektorban tárolt (csúcskoordináták) poligont fest ki a megadott színnel. A pontokat körüljárási sorrendben kell megadni. A példa egy alapelemből - ház, transzformációkkal egy tanyát készít, majd megjeleníti. A formázást parancssorból végezzük. A ház csúcsmátrixa homogén koordinátával kibővítve: csucs = 0 0 0 1 0 3 0 1 3 3 0 1 3 0 0 1 0 0 3 1 0 3 3 1 3 3 3 1 3 0 3 1 1 1 5 1 1 2 5 1 2 2 5 1 2 1 5 1 A ház lapmátrixa (hivatkozási sorszámokkal a csúcsokra): lap = 1 2 3 4 3 7 8 4 2 6 7 3 5 6 2 1 8 5 1 4 17 / 19

9 10 11 12 5 6 10 9 6 7 11 10 7 8 12 11 8 5 9 12 subplot(1,2,1) hold on for i=1:length(lap) fill3(csucs(lap(i,1:4),1),csucs(lap(i,1:4),2),csucs(lap(i,1:4),3),[.8.8.8],'edgecolor',[.0.0.0]) end set(gca,'dataaspectratiomode','manual') axis([-1,4,-1,4,0,5]) subplot(1,2,2) hold on Nagy1=[10 0 0 0; 0 10 0 0; 0 0 20 0; 0 0 0 1] Nagy2=[20 0 0 0; 0 10 0 0; 0 0 10 0; 0 0 0 1] Nagy3=[10 0 0 0; 0 20 0 0; 0 0 10 0; 0 0 0 1] Tol2=[1 0 0 0; 0 1 0 0; 0 0 1 0; 50 0 0 1] Tol3=[1 0 0 0; 0 1 0 0; 0 0 1 0; 0 50 0 1] haz1=csucs*nagy1 haz2=csucs*nagy2*tol2 haz3=csucs*nagy3*tol3 for i=1:length(lap) fill3(haz1(lap(i,1:4),1),haz1(lap(i,1:4),2),haz1(lap(i,1:4),3),[.7.7.7],'edgecolor','none') end for i=1:length(lap) fill3(haz2(lap(i,1:4),1),haz2(lap(i,1:4),2),haz2(lap(i,1:4),3),[.7.7.7],'edgecolor','none') end for i=1:length(lap) fill3(haz3(lap(i,1:4),1),haz3(lap(i,1:4),2),haz3(lap(i,1:4),3),[.7.7.7],'edgecolor','none') end set(gca,'dataaspectratiomode','manual') axis([-10,120,-10,120,0,100]) light('position',[-2-1 1.5],'Style','infinite'); 18 / 19

Csupa háromszögből vagy négyszögből összerakott alakzathoz használhatjuk a trimesh(lapok,x,y,z, ) grafikus függvényt. Az eljárás X,Y,Z vektorban tárolt (csúcskoordináták) háromszögeket vagy négyszögeket jelenít meg. A példa az előző alapelem megjelenítése. A lapmátrix soronként a megfelelő sorszámú csúcsokra hivatkozik. Fontos, hogy a csúcsok körüljárási sorrendje a jobbkéz-szabály szerinti kifelé mutató normálist defíniálja! csucs =[ 0 0 0 0 3 0 3 3 0 3 0 0 0 0 3 0 3 3 3 3 3 3 0 3 1 1 5 1 2 5 2 2 5 2 1 5] lap =[ 1 2 3 4 3 7 8 4 2 6 7 3 5 6 2 1 8 5 1 4 9 12 11 10 5 9 10 6 6 10 11 7 7 11 12 8 8 12 9 5] subplot(1,2,1) trimesh(lap,csucs(:,1),csucs(:,2),csucs(:,3),'edgecolor','none','facecolor',[.7.7.7],'facelighting','flat') light('position',[-2-1 1.5],'Style','infinite'); axis equal axis([-1,4,-1,4,0,5]) Megjegyzés: a gúla megjelenítése egy másik lapmátrix-szal történt, megegyező módon. 19 / 19