Verfasst am: 20.04.2013, 23:28
Titel: fläche mehrerer polygone
Hallo,
ich bin auf der Suche nach einer Berechnung der Fläche von mehrereren Poygonen. Die Polygone können sich schneiden oder nicht. Was ich am Ende brauche ist der Flächeninhalt der farbigen Fläche. Wenn polygone uebereinader liegen, duerfen die aber nur einmal gezählt werden. Polybool kann ich nicht verwenden, da ich keine lizenz habe
Im folgenden Beispiel überdecken sich die blaue und rote Fläche ich bräuchte den Flächinihalt von allem was farbig ist
Hallo,
ich weiß diese Frage ist nicht trivial. Und ich bin auch nicht auf der Suche nach einer "ein-Zeilen_Lösung". Was ich bräuchte sind ein paar Tipps wie ich vorgehen könnte.
Bei meinem Problem habe ich ca. 100 areas. Ich hab mir dabei folgendes überlegt:
- Ich bräuchte eine Schleife die untersucht ob sich area(1) mit area(i) schneidet. Das könnte ich mit inpolygon machen. Ich berechne dann die Schnittpunkte und berechne einen convhull.
- Diese müsste ich dann wieder mit allen übrigen vergleichen.
- zum Schluss müsste ich mit polyarea alle sich nicht schneidenden areas addieren.
Wie könnte ich das am besten mit dem Vergleich und den Schleifen machen. Vielleicht kann mir bei der Vorgehensweise jemand helfen.
Danke
Hallo Thomas,
das hab ich auch schon gefunden. Da gibt es nur 2 Probleme:
- ich hab keine Ahnung was das immer mit der Lizenz auf sich hat. Das ist auch der Grund, dass ich nie etwas von dem File exchange verwende. Ich glaub nicht, das man einfach die files in seinem code verwenden darf. Daher lass ich das immer sein.
- das andere ist. Die vergleichen nur 2 polygone. Das kann ich selber auch machen. Aber was mach ich bei 100 Polygonen?
Mein Problem im Moment ist, die Schleifen so auf zu bauen, das der Vergleich möglichst schnell und robust abläuft. Ich schreib mal nochmal das Beispielproblem.
Wenn ich die area1 mit area2 vergleiche und die
- haben einen Schnittpunkt. Dann muesste ich area1 und area2 löschen und anstelle derer die neue area12 in den Vergleich einbauen.
- haben die keinen Schnittpunkt. Dann bleiben die stehen und area1 wird mit area3 verglichen. Hier könnte dann wieder ein Schnittpunkt entstehen und area13 könnte auch wieder einen Schnittpunkt mit area2 haben. usw. ...
Im Moment ist diese Abfrageroutine mein Problem. Wie mach ich das am effizientesten
Danke
Alle neuen und fast alle alten Files, die Du im FileExchange downloaden kannst, stehen unter der "BSD-Lizenz". Die gibt Dir schriftlich die Garantie, dass Du den Code in eigenen Projekten verwenden darfst, eigene Änderungen vornehmen darfst, den Code geändert und ungeändert weitergeben, auch für kommerzielle Projekte verwenden. Aber Du darfst das Lizenz-File dabei nicht vergessen. Also im Grunde darfst Du mit dem Code alles machen, was Du willst, ausser die Information zu löschen, wer der Autor war.
Die BSD-Lizenz ist damit die Absicherung für dich, falls Dich irgendwann mal jemand fragt, ob du den fremden Code überhaupt verwenden darfst.
Ich kann also nur wärmstens empfehlen nach fertigen Lösungen im FileExchange zu suchen.
Gruß, Jan
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.