ConvexHull (FPScript)

21.09.2021

Berechnet die konvexe Hülle einer zweidimensionalen Punktemenge.

Syntax

ConvexHull(Points [ , Algorithm = CONVEXHULL_GRAHAM_SCAN ])
oder
ConvexHull(Y, X [ , Algorithm = CONVEXHULL_GRAHAM_SCAN ])

 

Die Syntax der ConvexHull-Funktion besteht aus folgenden Teilen:

Teil

Beschreibung

Points

Die Y- und X-Punktemenge, für die die konvexe Hülle berechnet werden soll.

Erlaubte Datenstrukturen sind Signal. Es sind alle reellen Datentypen erlaubt außer Kalenderzeit und Zeitspanne.

Ist das Argument eine Liste, dann wird die Funktion für jedes Element der Liste ausgeführt und das Ergebnis ist ebenfalls eine Liste.

Y

Die Y-Punktemenge, die zur Berechnung der konvexen Hülle verwendet wird. Wenn Sie ein Signal angeben, wird dessen Y-Komponente verwendet.

Erlaubte Datenstrukturen sind Datenreihe und Signal. Es sind alle reellen Datentypen erlaubt außer Kalenderzeit und Zeitspanne.

Ist das Argument eine Liste, dann wird deren erstes Element entnommen. Ist dies wieder eine Liste, dann wird der Vorgang wiederholt.

X

Die X-Punktemenge, die zur Berechnung der konvexen Hülle verwendet wird. Wenn Sie ein Signal angeben, wird dessen Y-Komponente verwendet.

Erlaubte Datenstrukturen sind Datenreihe und Signal. Es sind alle reellen Datentypen erlaubt außer Kalenderzeit und Zeitspanne.

Ist das Argument eine Liste, dann wird deren erstes Element entnommen. Ist dies wieder eine Liste, dann wird der Vorgang wiederholt.

Algorithm

Bestimmt den Algorithmus zur Berechnung der konvexen Hülle.

Das Argument Algorithm kann folgende Werte haben:

Konstante

Bedeutung

CONVEXHULL_JARVIS_MARCH

Zur Berechnung der konvexen Hülle wird der Jarvis-March Algorithmus verwendet (auch bekannt als Gift-Wrapping-Algorithmus). Die Laufzeit des Algorithmus beträgt O(n*h), wobei h die Anzahl der Punkte auf der konvexen Hülle bezeichnet. Der Algorithmus ist damit ausgabesensitiv, d.h. die Laufzeit hängt von den Eingangsdaten ab. Im Worst-Case Szenario besitzt der Algorithmus also quadratische Laufzeit. Allerdings ist in vielen Anwendungsfällen die Anzahl der Punkte auf der konvexen Hülle gering, so dass der Algorithmus in diesen Fällen schneller als der Graham-Scan Algorithmus ist.

CONVEXHULL_GRAHAM_SCAN

Zur Berechnung der konvexen Hülle wird der Graham-Scan Algorithmus verwendet. Die Laufzeit des Algorithmus beträgt stets O(n*log(n)).

Ist das Argument eine Liste, dann wird deren erstes Element entnommen. Ist dies wieder eine Liste, dann wird der Vorgang wiederholt.

Wenn das Argument nicht angegeben wird, wird es auf den Vorgabewert CONVEXHULL_GRAHAM_SCAN gesetzt.

Anmerkungen

Das Ergebnis hat immer die Datenstruktur Signal.

Die Werte werden vor der Berechnung in 64-Bit Fließkommazahlen gewandelt.

Verfügbarkeit

FlexPro Basic, Professional, Developer Suite

Beispiele

Dim y = Noise(1# 100, NOISE_NORMAL, 0)
Dim x = Noise(1# 100, NOISE_NORMAL, 0)
Dim points = Signal(y, x)
List("Points", points, "Convex Hull", ConvexHull(points))

Berechnet die konvexe Hülle von zufällig verteilten Punkten in der zweidimensionalen Ebene.

Siehe auch

MinimumCircumscribedCircle-Funktion

Artikel teilen oder als Email versenden:

Diese Beiträge könnten Sie ebenfalls interessieren