|
|
Ausschnitt einer konvexen Form aus einer Fläche |
|
Phayt |

Forum-Newbie
|
 |
Beiträge: 2
|
 |
|
 |
Anmeldedatum: 19.03.15
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 19.03.2015, 15:31
Titel: Ausschnitt einer konvexen Form aus einer Fläche
|
 |
|
 |
|
Hallo zusammen!
Ich versuche das Problem so genau wie möglich zu beschreiben. Deswegen hole ein ein wenig aus und erzähle erstmal, was genau ich machen möchte.
- Ziel: Aus Geländedaten die Grundfläche eines Waldes "herausschneiden". Die so ausgeschnittene Fläche mit einem Offset duplizieren (Baumhöhe) und zuletzt als *.stl exportieren.
- Ausgangspunkt sind topographische Geländedaten. Das Gelände ist in 3x3=9 Kacheln mit je 2x2 Km Seitenlänge unterteilt, das ganze Gebiet umfasst also 6x6 Km.
- Die Daten liegen einzeln für jede Kachel in Form einer 3xn Matrix mit X, Y und Z Koordinaten vor. Die Rasterweite in X- und Y-Richtung bertägt 2 Meter.
- Die Daten habe ich bereits so sortiert und aufbereitet, dass ich nun für eine Geländekachel je eine X, Y, und Z Matrix mit 1000x1000 Einträgen habe.
- Innerhalb dieser Geländekacheln gibt es Waldgebiete. Diese möchte ich durch konvexe Flächen beschreiben, indem ich beliebig viele Eckpunkte definiere und diese mit Geraden verbinde.
- Für ein einzelnes Waldstück gehe ich folgendermaßen vor: Als ersten Schritt beschneide ich die 2x2Km Kachel so, dass ich das kleinstmögliche Rechteck erhalte, in den der Wald noch hereinpasst.
Das eigentliche Problem, das ich jetzt habe ist: Gibt es eine halbwegs simple Methode um für jeden Punkt innerhalb des Rechtecks zu überprüfen, ob dieser sich innerhalb des konvexen Waldgebietes befindet und falls er es nicht tut, diesen so zu löschen, dass ich am Ende mit surf2solid und stlwrite ein Oberflächennetz in Form des konvexen Gebietes bekomme?
Momentan arbeite ich an einer Variante, bei der ich die Eckpunte des Waldes zu Gerade verbinde und dann die Position relativ zur Geraden ermittle um dann zu versuchen festzustellen ob der Punkt im oder außerhalb des Waldgebietes liegt. Das Ganze wird aber ne Riesen-Schleife weil ich ja erstmal wissen muss mit welcher Geraden ich den Punkt vergleichen muss. Ist sicherlich programmiertechnisch möglich aber ich hoffe wie gesagt, dass es eine simplere Methode gibt.
Ich hoffe ich konnte das Problem einigermaßen erklären und hab nicht allzuviel mit umgangssprachlichen Begriffen um mich geworfen.
Viele Dank schon einmal im Vorraus!
|
|
|
|
|
Seban |

Forum-Meister
|
 |
Beiträge: 600
|
 |
|
 |
Anmeldedatum: 19.01.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ab R2014b
|
 |
|
|
 |
|
Verfasst am: 19.03.2015, 21:04
Titel:
|
 |
Hallo,
Wie lautet die Bedingung anhand derer ermittelt wird, ob eine x-y-z-Kombination inner- oder außerhalb des Waldes liegt? Kann man das an z erkennen?
Kannst du Beispieldaten posten?
Grüße,
Seban
_________________
Richtig fragen
Debugging
|
|
|
Phayt |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 2
|
 |
|
 |
Anmeldedatum: 19.03.15
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 20.03.2015, 14:47
Titel:
|
 |
|
 |
|
Hallo Seban,
siehste Mal, hab ich mich schon ungünstig ausgedrückt. Die Geländedaten, die ich habe beschreiben nur die Höhe des Bodens. Strukturen wie Bäume, Häuser etc. sind nicht enthalten.
Die Wälder muss ich von Hand definieren. Das mache ich, indem ich auf Google Earth schaue, wo Wälder sind. Dann bestimme ich Eckpunkte, welche ich mit Geraden verbinde, die den Waldrand darstellen. Am Ende soll der Boden des Geländes dann in der Form des Waldes ausgeschnitten werden und um die Baumhöhe extrudiert werden, damit ich diesen Körper dann als stl herausschreiben kann.
Ich veruche gerade die einzige Möglichkeit zu realisieren, die mir eingefallen ist: Mit einer Vielzahl von Schleifen eine Abfrage zu programmieren, bei der eben überprüft wird, ob ein Punkt auf einem 2D-Grid innerhalb eines konvexen Gebietes (Vieleck) liegt, wobei dieses Gebiet durch eine beliebige Anzahl von Eckpunkten definiert werden soll. Das ist (zumindest für mich als nicht-so-ganz-erfahrener Matlab-Benutzer) relativ aufwendig.
Deswegen hatte ich gehofft, dass das vielleicht schonmal jemand gemacht hat und eine entsprechende Funktion existiert.
Sobald ich da was zusammengeschustert hab, werd ich dann hier auch meinen Code hochladen. Bislang hab ich nur Datenimport, Sortierung und Rechteck-Ausschnitt.
Grüße
|
|
|
|
|
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.
|
|