Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Algorithmus Parallele Linie (https://www.delphipraxis.net/197757-algorithmus-parallele-linie.html)

brechi 2. Sep 2018 11:26

Algorithmus Parallele Linie
 
Liste der Anhänge anzeigen (Anzahl: 2)
Hallo,

ich habe mehrere Polylinien und möchte jeweils eine parallele Polylinie erstellen. In QGIS geht das z.B. über den Versatz, bei Postgis über ST_OffsetCurve.

Anbei sind zwei Screenshots:

1) GIS mit der Ausgangslinie (Schwarz) und drei farbige Linien mit unterschiedlichem Versatz.
2) Ein Bild von meinem Algorithmus, rot ist die Ausgangslinie und blau sind die Linien mit Versatz. Das ganze gefällt mir noch nicht, weil es in einigen Fällen einfach nicht passt.

Kenn jemand einen passenden Algorithmus? Durch die Sourcen von PostGIS etc. bin ich nicht durchgestiegen.

Uwe Raabe 2. Sep 2018 12:13

AW: Algorithmus Parallele Linie
 
Die Berechnung einer sauberen Parallelkurve für alle möglichen Ausgangskurven ist eines der anspruchsvolleren Probleme der zweidimensionalen Darstellung. Ich kenne viele Programme, die bei dieser Aufgabe unter bestimmten Bedingungen scheitern.

Das Verschieben der einzelnen Segmente ist da noch recht einfach, aber das Berechnen der neuen Schnittpunkte und die Analyse, welche Segmente dabei wegfallen , ist alles andere als trivial (insbesondere wenn auch Bögen vorkommen). Ein solcher Algorithmus ist deswegen auch entsprechend komplex und nicht in ein paar Sätzen hier eingetippt.

Bei Google suchenoffset polyline algorithm

brechi 2. Sep 2018 12:32

AW: Algorithmus Parallele Linie
 
Dank dir erstmal. Ich schreib hier auch rein, weil es eben nicht trivial ist. Sonst hätte ich das Problem auch schon gelöst ;)

Kennst du eine freie Bibliothek die man nutzen kann?

Fritzew 2. Sep 2018 13:25

AW: Algorithmus Parallele Linie
 
Schaue Dir das mal an:
http://www.angusj.com/delphi/clipper.php

brechi 2. Sep 2018 15:26

AW: Algorithmus Parallele Linie
 
Danke die habe ich auch gefunden und versucht zu implementieren.
Leider ist etSingle noch nicht implementiert, d.h. es wird ein Polygon erstellt und nicht nur eine Polylinie auf einer Seite. Und so einfach scheint es wieder nicht implementierbar zu sein...

https://github.com/eppz/Clipper/blob...hi/clipper.pas


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:46 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz