Mo Logo [Home] [Lexikon] [Aufgaben] [Tests] [Kurse] [Begleitmaterial] [Hinweise] [Mitwirkende] [Publikationen]

Mathematik-Online-Kurs: MATLAB - Grafik

Darstellung dreidimensionaler Graphen


[vorangehende Seite] [nachfolgende Seite] [Gesamtverzeichnis][Seitenübersicht]

Dreidimensionale Graphen können in MATLAB unter anderem mit Hilfe der folgenden Funktionen dargestellt werden:
plot3 zeichnet einen Polygonzug
mesh zeichnet ein dreidimensionales Netz
surf zeichnet eine dreidimensionale Fläche
surfl zeichnet eine beleuchtete dreidimensionale Fläche
Die Farbgebung von Flächen kann mit Hilfe des Befehls
colormap(map)
gewählt werden. Hierbei ist map eine dreispaltige Matrix mit RGB-Werten in den Zeilen (normiert auf [0,1]). Vordefinierte Colormaps liefern die folgenden Funktionen:
autumn \includegraphics[width=10cm,height=2ex,clip=true]{bild_beispiele_colormaps_autumn.eps}  
bone \includegraphics[width=10cm,height=2ex,clip=true]{bild_beispiele_colormaps_bone.eps}  
colorcube \includegraphics[width=10cm,height=2ex,clip=true]{bild_beispiele_colormaps_colorcube.eps}  
cool \includegraphics[width=10cm,height=2ex,clip=true]{bild_beispiele_colormaps_cool.eps}  
copper \includegraphics[width=10cm,height=2ex,clip=true]{bild_beispiele_colormaps_copper.eps}  
flag \includegraphics[width=10cm,height=2ex,clip=true]{bild_beispiele_colormaps_flag.eps}  
gray \includegraphics[width=10cm,height=2ex,clip=true]{bild_beispiele_colormaps_gray.eps}  
hot \includegraphics[width=10cm,height=2ex,clip=true]{bild_beispiele_colormaps_hot.eps}  
hsv \includegraphics[width=10cm,height=2ex,clip=true]{bild_beispiele_colormaps_hsv.eps}  
jet \includegraphics[width=10cm,height=2ex,clip=true]{bild_beispiele_colormaps_jet.eps} (Standard)
lines \includegraphics[width=10cm,height=2ex,clip=true]{bild_beispiele_colormaps_lines.eps}  
pink \includegraphics[width=10cm,height=2ex,clip=true]{bild_beispiele_colormaps_pink.eps}  
prism \includegraphics[width=10cm,height=2ex,clip=true]{bild_beispiele_colormaps_prism.eps}  
spring \includegraphics[width=10cm,height=2ex,clip=true]{bild_beispiele_colormaps_spring.eps}  
summer \includegraphics[width=10cm,height=2ex,clip=true]{bild_beispiele_colormaps_summer.eps}  
vga \includegraphics[width=10cm,height=2ex,clip=true]{bild_beispiele_colormaps_vga.eps}  
white \includegraphics[width=10cm,height=2ex,clip=true]{bild_beispiele_colormaps_white.eps}  
winter \includegraphics[width=10cm,height=2ex,clip=true]{bild_beispiele_colormaps_winter.eps}  
Bei Angabe einer natürlichen Zahl n als Parameter, wird eine $ (\mathtt{n}\times 3)$-Colormap-Matrix generiert. Größere n bedeuten dabei feinere Farbabstufungen.

Neben der Colormap kann die Art der Schattierung von Kanten und Flächen mit Hilfe des Befehls shading kontrolliert werden:

shading flat konstante Farbe bei Kanten und Flächen
shading interp lineare Interpolation der Farben auf Kanten und Flächen
  (Gouraud shading)
shading faceted entspricht shading flat mit schwarzen Kanten
Weitere Befehle zur Modifikation der Darstellung sind unter anderem:
hidden steuert die Anzeige verdeckter Linien
alpha steuert die Transparenz von Objekten
colorbar Anzeige einer Farblegende
lighting Wahl der Beleuchtungsart
Zur Generierung von Auswertungsgittern für bivariate bzw. multivariate Funktionen können die Funktionen
meshgrid     bzw.     ndgrid
verwendet werden.

Die verfügbaren Befehle zur Darstellung bzw. Manipulation dreidimensionaler Graphen lassen sich durch

help graph3d
angezeigen.
(Autoren: Hörner/Wipper)

Downloads:

( .m, 466 ,  27.03.2007)
( .m, 451 ,  27.03.2007)

(Beschreibung der Dateitypen)


Darstellung parametrisierter Kurven:

  >> t=linspace(0,2*pi);
  >> x=cos(t);
  >> y=sin(t);
  >> z=cos(2*t);
  >> plot3(x,y,z)

\includegraphics[width=7cm]{bild_beispiele_graph3d_1}



Abgebildet ist die Kurve $ c(t)=\big(\cos(t),\sin(t),\cos(2t)\big)^{{\operatorname{t}}}$ für $ t\in [0,2\pi]$. Analog zum Befehl plot kann die Gestalt des Polygonzugs durch einen Formatstring modifiziert werden.


Darstellung von Funktionen in zwei Variablen:

  >> [X,Y]=meshgrid(-2:.1:2,-1:.1:1);
  >> Z=X.*exp(-X.^2-Y.^2);
  >> mesh(X,Y,Z);
  >> colormap([0 0 0])

\includegraphics[width=7cm]{bild_beispiele_graph3d_2}



Abgebildet ist die Funktion $ z=x\exp(-x^{2}-y^{2})$. Zu deren Darstellung wurde zunächst mit Hilfe des Befehls meshgrid ein Auswertungsgitter für den Bereich $ [-2,2]\times [-1,1]$ erstellt. Der Befehl mesh erzeugt ein Netz der Fläche, das anschließend mit Hilfe von colormap gefärbt wurde. Der Vektor [0 0 0] stellt dabei eine Colormap dar, welche nur die Farbe Schwarz enthält.


Darstellung parametrisierter Flächen:

  >> [p,t]=meshgrid(...
             linspace(-pi,pi,30),...
             linspace(0,pi,15));
  >> X=cos(p).*sin(t);
  >> Y=sin(p).*sin(t);
  >> Z=cos(t);
  >> surf(X,Y,Z);

\includegraphics[width=7cm]{bild_beispiele_graph3d_3}



Dargestellt ist die mit Hilfe von Kugelkoordinaten parametrisierte Einheitsspähre. Für diese wurden zunächst mit Hilfe des meshgrid-Befehls die beiden $ (15\times 30)$-Parametermatrizen p und t des Bereichs $ [-\pi,\pi]\times[0,\pi]$ erstellt. Aufgrund des Befehls surf erfolgt die Darstellung mit gefärbten Facetten. Man beachte, dass die Darstellung aufgrund der unterschiedlichen Achsenskalierungen verzerrt ist. Dies kann durch den Befehl axis equal vermieden werden.


Darstellung beleuchteter Flächen:

  >> [X,Y,Z]=peaks(100);
  >> surfl(X,Y,Z);
  >> colormap(gray(1000))
  >> shading interp

\includegraphics[width=7cm]{bild_beispiele_graph3d_4}



Die Funktion peaks liefert die drei $ (100\times 100)$-Matrizen X, Y und Z mit den Daten der abgebildeten Funktion. Diese wird mit Hilfe von surfl als beleuchtete Fläche dargestellt. Die Farbdarstellung wird durch Wahl einer Colormap mit einer sehr feinen Abstufung von 1000 Farbeiträgen und der Verwendung interpolierter Farbübergänge innerhalb der Facetten verbessert.

(Autoren: Hörner/Wipper)

[vorangehende Seite] [nachfolgende Seite] [Gesamtverzeichnis][Seitenübersicht]

  automatisch erstellt am 5.2.2008