ConvexHull (FPScript)

21.09.2021

Calcule l'enveloppe convexe d'un ensemble de points bidimensionnel.

Syntaxe

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

 

La syntaxe de la fonction ConvexHull se compose des éléments suivants :

Section

Description

Points

Les points Y et X pour lesquels l'enveloppe convexe doit être calculée.

Les structures de données autorisées sont Signal. Tous les types de données réels sont autorisés, sauf Temps calendaire et Période de temps.

Si l'argument est une liste, alors la fonction est exécutée pour chaque élément de la liste et le résultat est également une liste.

Y

Les points Y utilisés pour calculer l'enveloppe convexe. Si vous spécifiez un signal, alors sa composante Y est utilisée.

Les structures de données autorisées sont Séries de données et Signal. Tous les types de données réels sont autorisés, sauf Temps calendaire et Période de temps.

Si l'argument est une liste, alors son premier élément est pris. S'il s'agit à nouveau d'une liste, le processus est répété.

X

Les points X utilisés pour calculer l'enveloppe convexe. Si vous spécifiez un signal, alors sa composante Y est utilisée.

Les structures de données autorisées sont Séries de données et Signal. Tous les types de données réels sont autorisés, sauf Temps calendaire et Période de temps.

Si l'argument est une liste, alors son premier élément est pris. S'il s'agit à nouveau d'une liste, le processus est répété.

Algorithm

Détermine l'algorithme de calcul de l'enveloppe convexe.

L'argument Algorithm peut avoir les valeurs suivantes :

Constante

Signification

CONVEXHULL_JARVIS_MARCH

L'algorithme Jarvis March (également connu sous le nom d'algorithme gift wrapping) est utilisé pour calculer l'enveloppe convexe. Le temps d'exécution de l'algorithme est O(n*h), où h décrit le nombre de points sur l'enveloppe convexe. L'algorithme est donc sensible à la sortie, ce qui signifie que la durée d'exécution dépend des données d'entrée. Dans le pire des cas, l'algorithme a une durée d'exécution quadratique. Toutefois, dans de nombreuses applications, le nombre de points sur l'enveloppe convexe est faible, de sorte que dans ces cas, l'algorithme est plus rapide que l'algorithme de Graham-Scan.

CONVEXHULL_GRAHAM_SCAN

L'algorithme de Graham-Scan est utilisé pour calculer l'enveloppe convexe. Le temps d'exécution de l'algorithme est toujours O(n*log(n)).

Si l'argument est une liste, alors son premier élément est pris. S'il s'agit à nouveau d'une liste, le processus est répété.

Si l'argument n'est pas spécifié, il est défini à la valeur par défaut CONVEXHULL_GRAHAM_SCAN .

Remarques

Le résultat a toujours la structure de données Signal.

Les valeurs sont converties en points flottants de 64 bits avant que le calcul ne soit effectué.

Disponible dans

FlexPro Basic, Professional, Developer Suite

Exemples

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))

Calcule l'enveloppe convexe de points répartis de façon aléatoire dans le plan bidimensionnel.

Voir aussi

Fonction MinimumCircumscribedCircle

Partager l’article ou envoyer par mail :

Vous serez probablement intéressé par les articles suivants :