|
Zirom44 |
Forum-Newbie
|
|
Beiträge: 2
|
|
|
|
Anmeldedatum: 21.06.18
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 21.06.2018, 10:09
Titel: Analyse 3D-Oberfläche
|
|
|
|
|
Guten Tag,
ich bin relativ neu in Matlab, kenne zwar grundlegende Funktione, aber bin noch kein Experte. Deswegen hoffe ich, dass meine Frage von Euch relativ schenll beantwortet werden kann. Danke schonmal für eure Hilfe!
Hier mein Problem:
Ich habe Datenpunkte einer 3D Oberfläche und will diese in Matlab plotten und analysieren.
Dabei wil ich die Größe der Oberfläche berechnen, die einer bestimmten Richtung(bspw. der x-Achse) zugewandt ist. Sowie die Größe der Projektionsfläche (auf die y-z-Ebene) dieser Flächen bestimmen.
Um die Daten zu plotten wollte ich das curve fitting tool verwenden.
Dann die Oberfläche mit Polygonen überziehen und zu jedem Polygon den Normalenvektor bestimmen.
Sobald ich den bestimmt habe kann ich mir die relevanten Polygone rausfiltern, deren Flächen bestimmen und aufaddieren.
Hier meine Frage:
Gibt es im curfe fitting tool (cft) schon die Option die Oberfläche durch Polygone anzunähern?
Gibt es eine andere Funktion, die mir eine Oberfläche (wenn ich diese durch das cft erstellt habe) mit Polygonen überzieht?
Welche Funktion kann ich verwenden um den nach außen gerichteten Normalenvektor aller Polygone zu bestimen und in einer Matrix ablegen kann?
Ich bin auch offen für Vorschläge das Problem auf andere Art zu lösen
Nochmals Danke für die Hilfe und viele Grüße
Moritz
|
|
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 21.06.2018, 13:07
Titel:
|
|
Hallo,
convhull bzw. convhulln könnten helfen.
Grüße,
Harald
|
|
|
Zirom44 |
Themenstarter
Forum-Newbie
|
|
Beiträge: 2
|
|
|
|
Anmeldedatum: 21.06.18
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 08.07.2018, 17:19
Titel:
|
|
|
|
|
Hi,
ich hab das jetzt mal mit convhulln ausprobiert. Scheint mir aber nicht das richtige für mich zu sein, da durch bestimmen der konvexen Oberfläche, die Größe von Flächen beispielsweise Tälern gar nicht betrachtet werden kann. (Dazu auch noch ein Bild...)
Ich hab es auch mal mit delaunayTriangulation und daran angefügt freeBoundary versucht und komme so auf das gleiche Ergebnis wie bei convhulln.
Da die Punkte einen gleichmäßigen Abstand in x- und y-Richtung haben, ist für mich ein regelmäßiges Netz aus Dreiecken interessant.
Ich werde mal ein Foto anhängen, damit man vorstellen kann was ich meine.
Da ich eine Liste von allen meinen Datenpunkten in geordneter Form habe, könnte ich mir eine Funktion selbst schreiben, die immer aus 3 beieinander liegenden Punkten ein Dreieck bildet und dessen Normalenvektor auf die Richtung checkt.
Ich könnte mir aber vorstellen, dass es in Matlab schon eine Funktion gibt, die aus einer Liste aus Punkten (x,y,z) eine Liste an Dreiecken mit regelmäßigen Abstands (in x- und y-Richtung) ausgibt. Dann könnte ich FaceNormal verwenden...
Oder eine Funktion, die mir aus der delaunayTriangulation diejenigen Dreiecke rausfiltert, die regelmäßig angeordnet sind.
Vor 2 Wochen hatte ich den Datensatz mit den Punkten noch nicht, deswegen arbeite ich erst seit gestern wieder an diesem Thema... Danke für die Hilfe.
Grüße,
Moritz
Beschreibung: |
Zum Bild: So soll das am Ende aussehen. Ich suche die Flächengröße aller Dreiecke, die einer bestimmten Richtung zugewandt sind. Wenn ich nun mithilfe meiner Datenpunkte in x/y/z eine Fläche aus Polygonen erstelle, könnte ich von jedem Polygon den N |
|
Download |
Dateiname: |
Bildschirmfoto 2018-07-08 um 17.57.19.png |
Dateigröße: |
463.63 KB |
Heruntergeladen: |
344 mal |
|
|
|
Jan S |
Moderator
|
|
Beiträge: 11.057
|
|
|
|
Anmeldedatum: 08.07.10
|
|
|
|
Wohnort: Heidelberg
|
|
|
|
Version: 2009a, 2016b
|
|
|
|
|
|
Verfasst am: 08.07.2018, 19:29
Titel: Re: Analyse 3D-Oberfläche
|
|
Hallo Zirom44,
alphaShape
hilft Dir auch konkave Flächen zu Punktwolken zu erstellen. Um die Projektionsfläche in eine bestimmt Richtung zu berechnen, ist es am einfachsten, die Punktwolke zunächst in diese Richtung zu rotieren. Dann ist die Projektion eine 2D-Fläche. Per
alphaShape
bekommst Du davon die konkave Hülle, wobei diese natürlich nicht eindeutig ist. Man muss deshalb dazu definieren, wie große der Mindest- und Maximal-Abstand zwischen den Punkten ist
Das ist deutlich einfacher, als per Curvefitting eine Oberfläche zu fitten und Flächennormalen zu berechnen (was übrigens mit dem Cross-Produkt geht).
Gruß, Jan
|
|
|
ulru |
Forum-Newbie
|
|
Beiträge: 4
|
|
|
|
Anmeldedatum: 18.07.18
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 18.07.2018, 17:54
Titel:
|
|
Die Aufgabe hört sich so an, als sei eine Querschnittsfläche zu berechnen. Wenn die Querschnittsfläche ein Polygon ist, dann suche ich mir einfach einen Mittelpunkt auf der Fläche. Das kann auch der Ursprung des Koordinatensystems sein. Dann kann die Querschnittsfläche als Summe aus Einzelflächen berechnet werden.
Die zeigen auf die Eckpunkte des Polygons.
|
|
|
|
|
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
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2025
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
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.
|
|