Verfasst am: 15.08.2007, 10:20
Titel: Zellen erstellen und bearbeiten
hallo,
bin mir nicht sicher ob das in Matlab möglich ist, aber frage einfach trotzdem mal.
Ich generiere mir 8 Punkte im 3D Raum mit den Eigenschaften Punkt i (xi,yi,zi).
Problem 1:
Jetzt möchte ich mir aus diesen Punkten eine Zelle in Form von einem unregelmäßigen Hexaeder (Flächen können nicht gleich groß,nicht parallel zueinander sein) erstellen.
Problem 2:
Anschließend möchte ich dieser gebildeteten Zelle in in Abhängigkeit einer bestimmten Eigenschaft eine Farbe zuweisen.
Ich hoffe ich konnte mein Problem erklären und hoffe dass mir jmd. helfen kann.
Vielen Dank im Voraus.
was Du suchst ist der patch-Befehl. Man kann es zum Beispiel so machen:
Code:
% Koordinaten festlegen
x=[001221];
y=[01210-1];
z = [012210];
%Flächen festlegen
vert = [x',y',z']; % Ecken
fac = [123456]; % Flächen, hier nur eine. Reihenfolge der begrenzenden Ecken eingeben
% Fläche konstruieren
p = patch('Faces',fac,'Vertices',vert);
% Fläche einfärben je nach Eigenschaft if x(1) == 0 set(p,'FaceVertexCData',[.51 .5],'FaceColor','flat');
else set(p,'FaceVertexCData',[.75 .75 .75],'FaceColor','flat');
end
vielen Dank der Patch-Befehl hat mir deutlich weitergeholfen. Nun schaffe ich den verschiedenen Flächen des 'ausgearteten' Würfels Farben zuzuweisen.
jetzt stehe ich bereits vor dem nächsten Problem.
1. kann man den Würfel durch den patch Befehel auch in 3D Ansicht anzeigen lassen?
2. die Farben zuweisung in Abhängigkeit einer Kenngröße für jede Fläche klappt noch nicht. Am liebsten hätte ich es so z.B.
wenn 'Kenngröße' zw. 0.75 und 1, dann Fläche i rot
wenn 'Kenngröße' zw. 0.5 und 0.75, dann Fläche i blau
wenn 'Kenngröße' zw. 0.25 und 0.5, dann Fläche i grün
wenn 'Kenngröße' zw. 0.0 und 0.25, dann Fläche i gelb.
das Einfärben sollte sich mit einem eigens erstellten colormap mit nur 4 Einträgen lösen, wenn Du dazu noch mit caxis([0 1]) den Farbbereich entsprechend skalierst.
1. Das geht einfach, indem Du auf die "Rotate 3D"-Schaltfläche der figure klickst (Würfel mit Pfeil drumrum). Oder von einer Funktion aus mit dem "view"-Befehl, z.B.
kann mir jemend wie ich eine schleife schreiben kann,die Differenz zwischen zwei zellen(und zwar zwischen werte von gleichen Stelle) in 3D form berechnet.
x=111
y=17
z=unterschiedlisch
beispiel für eine bestimmte zelle:
ich brauche jetzt eine Forschleife denke ich mal für alle zellen also allgemein
Einstellungen und Berechtigungen
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.