MinimumZoneCircle (FPScript)

21.09.2021

Calcule les cercles de référence de la zone minimale (MZCI) d'un ensemble de points bidimensionnels. Utilisé pour déterminer la rondeur.

Syntaxe

MinimumZoneCircle(Points, [ OutputOptions = MZCI_OUTPUT_INSCRIBED_CIRCLE + MZCI_OUTPUT_CIRCUMSCRIBED_CIRCLE ], [ CircleSize = 5000 ], [ Iterations ] [ , StepWidth ])
ou
MinimumZoneCircle(Y, X, [ OutputOptions = MZCI_OUTPUT_INSCRIBED_CIRCLE + MZCI_OUTPUT_CIRCUMSCRIBED_CIRCLE ], [ CircleSize = 5000 ], [ Iterations ] [ , StepWidth ])

 

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

Section

Description

Points

Les ensembles de points Y et X pour lesquels les cercles de référence concentriques de zone minimale doivent être calculés. La même unité doit être utilisée pour les deux composantes du signal.

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.

Y

Les points Y utilisés pour calculer les cercles de référence concentriques de la zone minimale. Si vous spécifiez un signal, sa composante Y est utilisée. L'unité doit correspondre à l'unité de l'argument X.

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.

X

Les points X utilisés pour calculer les cercles de référence concentriques de la zone minimale. Si vous spécifiez un signal, sa composante Y est utilisée. L'unité doit correspondre à l'unité de l'argument Y.

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.

OutputOptions

Précise les résultats qui doivent être renvoyés. Les résultats multiples sont présentés sous forme de liste. Si, par exemple, le rayon du cercle central arithmétique et la circularité doivent être fournis, l'argument doit contenir la valeur MZCI_OUTPUT_MIDDLE_CIRCLE_RADIUS + MCCI_OUTPUT_ROUNDNESS.

L'argument OutputOptions peut avoir les valeurs suivantes :

Constante

Signification

+ MZCI_OUTPUT_ALL

Tous les résultats disponibles.

+ MZCI_OUTPUT_CENTER_X

Coordonnée X des cercles de référence concentriques. Le résultat est une valeur à virgule flottante de 64 bits.

+ MZCI_OUTPUT_CENTER_Y

Coordonnée Y des cercles de référence concentriques. Le résultat est une valeur à virgule flottante de 64 bits.

+ MZCI_OUTPUT_MIDDLE_CIRCLE

Le cercle moyenné arithmétiquement entre les cercles de référence concentriques, c'est-à-dire le cercle circonscrit minimum et le cercle inscrit maximum. Le résultat est un signal.

+ MZCI_OUTPUT_MIDDLE_CIRCLE_RADIUS

Rayon du cercle moyenné arithmétiquement. Le résultat est une valeur à virgule flottante de 64 bits.

+ MZCI_OUTPUT_INSCRIBED_CIRCLE

Le cercle inscrit calculé (cercle de référence). Le centre du cercle inscrit est égal au centre du cercle circonscrit (deuxième cercle de référence). Le résultat est un signal.

+ MZCI_OUTPUT_INSCRIBED_CIRCLE_RADIUS

Rayon du cercle inscrit. Le résultat est une valeur à virgule flottante de 64 bits.

+ MZCI_OUTPUT_CIRCUMSCRIBED_CIRCLE

Le cercle circonscrit calculé (cercle de référence). Le centre du cercle inscrit est égal au centre du cercle inscrit (deuxième cercle de référence). Le résultat est un signal.

+ MZCI_OUTPUT_CIRCUMSCRIBED_CIRCLE_RADIUS

Rayon du cercle circonscrit. Le résultat est une valeur à virgule flottante de 64 bits.

+ MZCI_OUTPUT_ROUNDNESS

La déviation de la circularité. C'est la différence entre les rayons des cercles circonscrits et inscrits. Le résultat est une valeur à virgule flottante de 64 bits.

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

CircleSize

Spécifie le nombre de valeurs utilisées pour représenter les cercles ajustés. Si vous entrez zéro, le nombre de valeurs d'origine est conservé. L'argument n'est pris en considération que si l'un des cercles énumérés a été sélectionné comme OutputOptions.

Les structures de données autorisées sont Scalaire. Tous les types de données entiers sont autorisés.

La valeur doit être supérieure ou égale à 0.

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

Iterations

Nombre d'itérations pour le calcul des cercles de référence concentriques avec la plus petite différence de rayon possible, c'est-à-dire l'écart de circularité le plus petit possible. Si vous omettez cet argument, le nombre d'itérations est fixé à une valeur automatique (qui dépend de la taille des ensembles de données d'entrée). Plus le nombre d'itérations est important, plus le résultat est précis (mais le calcul prend également plus de temps).

Les structures de données autorisées sont Scalaire. Tous les types de données entiers sont autorisés.

La valeur doit être supérieure ou égale à 1.

StepWidth

Incrément pour le calcul itératif des cercles de référence concentriques avec la différence de rayon la plus faible possible, c'est-à-dire l'écart de circularité le plus faible possible. Si vous omettez cet argument, l'incrément est fixé à une valeur automatique (dépendant des ensembles de données d'entrée).

Les structures de données autorisées sont Scalaire. Les types de données pris en charge sont Virgule flottante de 64 bits.

La valeur doit être supérieure à 0.

Remarques

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

Les cercles de référence concentriques de zone minimale (MZCI) sont estimés lors de la première étape d'itération par les cercles inscrits et circonscrits calculés par le cercle des moindres carrés (LSCI). Le résultat est ensuite amélioré de façon itérative. Un nouveau point est choisi au hasard autour du point central des cercles concentriques inscrits et circonscrits actuels à l'aide d'une distribution normale bidimensionnelle (l'écart-type correspond à l'argument StepWidth). Il est vérifié si les cercles concentriques inscrits et circonscrits recalculés au nouveau point ont une différence de rayon plus faible qu'auparavant. Si c'est le cas, le point devient le nouveau point central. La procédure est répétée itérativement N fois en fonction de la valeur de l'argument Iterations. La procédure itérative converge vers les cercles de référence concentriques avec la plus petite différence de rayon possible, c'est-à-dire vers les cercles de référence de zone minimale. Plus le nombre d'itérations est important, plus le résultat est précis. Cet algorithme est une méthode de Monte Carlo.

Les options de résultat de l'argument OutputOptions sont visualisés dans le graphique suivant :

Les résultats sont accessibles en utilisant les noms d'éléments de liste suivants :

Constante

Signification

.["Center_X"]

Coordonnée X du centre des cercles de référence concentriques.

.["Center_Y"]

Coordonnée Y du centre des cercles de référence concentriques.

.["Middle_Circle"]

Le cercle moyenné arithmétiquement entre les cercles de référence concentriques.

.["Middle_Circle_Radius"]

Rayon des cercles moyennés arithmétiquement.

.["Inscribed_Circle"]

Le cercle inscrit (cercle de référence).

.["Inscribed_Circle_Radius"]

Rayon du cercle inscrit.

.["Circumscribed_Circle"]

Le cercle circonscrit (cercle de référence).

.["Circumscribed_Circle_Radius"]

Rayon du cercle circonscrit.

.["Roundness"]

L'écart de circularité est la différence entre les rayons des cercles circonscrits et inscrits.

Vous pouvez aussi toujours utiliser la syntaxe Formula.Listelementname.

Remarque        Les calculs de circularité du MICI sont basés sur la norme actuellement en vigueur pour déterminer la circularité ; voir [1].

Disponible dans

FlexPro Professional, Developer Suite

Exemples

MinimumZoneCircle(y, x)

Calcule les cercles de référence MZCI d'un ensemble de points.

MinimumZoneCircle(y, x, MZCI_OUTPUT_ROUNDNESS)

Calcule les cercles MZCI d'un ensemble de points et ne renvoie que la circularité.

MinimumZoneCircle(points, MZCI_OUTPUT_MIDDLE_CIRCLE_RADIUS + MZCI_OUTPUT_ROUNDNESS)

Calcule les cercles MZCI d'un ensemble de points. Ainsi, le rayon du cercle central et la circularité sont édités sous forme de liste.

Dim alpha = Series(0, 2*PI, 0.05)
Dim r = 11.5 + Noise(1 # NumberOfRows(alpha), NOISE_NORMAL)
Dim points = Signal(Noise(1) + r*Sin(alpha), Noise(1) + r*Cos(alpha))
List("Points", points, "Minimum Zone Circle", MinimumZoneCircle(points))

Calcule les cercles MZCI des points répartis de manière aléatoire dans le plan bidimensionnel.

Voir aussi

Fonction LeastSquaresCircle

Fonction MaximumInscribedCircle

Fonction MinimumCircumscribedCircle

Fonction GaussianFilter

Fonction NonLinCurveFit

Fonction Approximation

Approximation Circulaire - Objet d'analyse

Littérature

[1] DIN Deutsches Institut für Normung e.V.: Part 1: Vocabulary and parameters of roundness (ISO 12181-1:2011); English translation of DIN EN ISO 12181-1:2011. Dans: Geometrical product specifications (GPS)- Roundness. 2011.

Partager l’article ou envoyer par mail :

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