Ich habe ein großes FEM-Modell, von dem ich die "Oberfläche" des Modells bekommen kann, sagen die Elemente und der Eckpunkt, die die Oberfläche dieses FEM-Modells definieren. Zum Plotten (schöne Plots sind immer ein Gewinn!) Möchte ich es schön grafisch darstellen. Mein Ansatz ist nurMatlab berechnet falsche Oberflächennormalen?
lungs.Vertex=vtx;
lungs.Faces=fcs;
patch(lungs,'facecolor','r','edgecolor','none')
verwendet HINWEIS: Ich brauche edgecolor keine, da diese 4D-Daten und verschiedene FEM haben unterschiedliche Triangulation, wenn Kanten aufgetragen Benutzer schwindlig wird.
aber dies wird alles ausgeben, in einer wirklich einfachen roten Farbe, die nicht schön ist (wie es nicht die Komplexität der Figur zeigen kann, die Lungen, die aufmerksam zu Details).
deshalb entschied ich mich ligthing zu verwenden:
camlight; camlight(-80,-10); lighting phong;
Aber noch einmal, das ist nicht ganz korrekt ist. Tatsächlich scheint es, dass die Patch-Nomals von Matlab nicht korrekt berechnet werden.
Meine Vermutung ist, dass vielleicht die Patches nicht immer definiert gegen den Uhrzeigersinn und damit einige Normalen in die falsche Richtung gehen. Das ist jedoch nicht einfach zu überprüfen.
Jeder hat ein ähnliches Problem, oder wie sollte ich dieses Problem ansprechen, um hier eine schöne Oberfläche zu haben?
EDIT
Gerade für die Schütteln Plotten, hier ist das Ergebnis mit @magnetometer Antwort erhalten:
Ich habe definitiv keine Normalen, das ist das Problem. Wenn alle Normalen "nach außen orientiert" oder "nach innen orientiert" sind, dann wird es auch kein Problem geben, nur umorientieren und thats es. Aber es scheint (aus dem Bild), dass einige nach innen und einige nach außen gehen, was das Blinken falsch macht. –
Sehr sehr interessante Funktionen in der Tat. Allerdings habe ich immer noch ein Problem. Ich habe "Face Normals", aber es scheint, Matlab will "Vertex Normals" für das Einstellen von Licht. Wie schlägst du vor, dass ich mich dem annähere? Vertexnormals = Mittelwert (Facenormals_with_that_vertex)? –
Ich habe es so gemacht und tolle Ergebnisse erzielt. Vielen Dank, das ist eine sehr nette Antwort. –