WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Analyse 3D-Oberfläche

 

Zirom44
Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 21.06.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.06.2018, 11:09     Titel: Analyse 3D-Oberfläche
  Antworten mit Zitat      
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! Very Happy

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 Smile

Nochmals Danke für die Hilfe und viele Grüße

Moritz
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 21.06.2018, 14:07     Titel:
  Antworten mit Zitat      
Hallo,

convhull bzw. convhulln könnten helfen.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Zirom44
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 21.06.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.07.2018, 18:19     Titel:
  Antworten mit Zitat      
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

Bildschirmfoto 2018-07-08 um 17.57.19.png
 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:  280 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 08.07.2018, 20:29     Titel: Re: Analyse 3D-Oberfläche
  Antworten mit Zitat      
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
Private Nachricht senden Benutzer-Profile anzeigen
 
ulru
Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 18.07.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.07.2018, 18:54     Titel:
  Antworten mit Zitat      
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.

S=\frac{1}{2} \sum\limits_{k=1}^{n} | \vec{r}_i \times \vec{r}_{i+1} |

Die \vec{r}_i zeigen auf die Eckpunkte des Polygons.
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 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.