3D-Patch

 

Ebenso wie im Zweidimensionalen ist es Ihnen möglich, einen Patch im Dreidimensionalen in eine bestehende Graphik einzufügen. Hierfür wird der Befehl patch(X,Y,Z,C) genutzt. Hinzu kommt, im Vergleich zum Zweidimensionalen, eine weitere Matrix, in der die Z - Koordinaten abgelegt werden.
Als Beispiel zeichnen wir ein rotes Dreieck mit den Eckpunkten (1,2,1),(5,5,5) und (1,6,6) :

>> x = [1 5 1];
>> y = [2 5 6];
>> z = [1 5 6];
>> patch(x,y,z,'r');
>> view(3)

Hinweis: Der Befehl view(3) dient dazu, einen vordefinierten, dreidimensionalen Ansichtswinkel einzustellen!

Sie können mehrere Patches zu einer dreidimensionalen Form zusammenfügen. Dies tun Sie, indem sie die Matrizen X,Y und Z erzeugen, in denen die Eckpunkte der Form gespeichert sind. Die jeweiligen Spalten der Matrizen ergeben immer die Eckpunkte einer Fläche.
Achten Sie auch hier auf die Reihenfolge der einzelnen Eckpunkte!

Als Beispiel erzeugen wir einen Würfel mit den Eckpunkten (0,0,0),(0,0,1),(0,1,0),(0,1,1),(1,0,0),(1,0,1),(1,1,0) und (1,1,1).
Für die erste Fläche ergeben sich so die Punkte (0,0,0),(0,0,1),(1,0,1) und (1,0,0). Für die zweite Fläche (0,0,1),(1,0,1),(1,1,1) und (0,1,1) usw.

Falls Ihnen das Vorgehen noch unklar ist, geben Sie doc ein und geben Multifaceted Patches im Search-Fenster des "Help Navigator" ein.

 

Somit ergeben sich für die erste Spalte(bzw die erste Fläche) der X,Y,Z - Matrizen die Werte:

wuerfel.m
X = [0;0;1;1];
Y = [0;0;0;0];
Z = [0;1;1;0];
patch(X,Y,Z,'b');
axis equal;
view(3);
rotate3d

Siehe patch1

Nun fügen Sie die zweite Fläche als zusätzliche Spalte der Koordinatenmatrizen hinzu:

wuerfel.m
X = [0 0;0 1;1 1;1 0];
Y = [0 0;0 0;0 1;0 1];
Z = [0 1;1 1;1 1;0 1];
patch(X,Y,Z,'r');
axis equal;
view(3);
rotate3d

Siehe patch2

Fügen Sie zum Abschluß des Würfels die fehlenden Flächen hinzu:

wuerfel.m
X = [0 0 1 1 0 0;0 1 1 0 0 0;1 1 1 0 0 1;1 0 1 1 0 1];
Y = [0 0 0 1 1 1;0 0 1 1 0 0;0 1 1 1 0 0;0 1 0 1 1 1];
Z = [0 1 0 0 0 0;1 1 0 0 0 0;1 1 1 1 1 0;0 1 1 1 1 0];
patch(X,Y,Z,'y');
axis equal;
view(3);
rotate3d

Siehe patch3