MinimumZoneCircle (FPScript)
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 :
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 MaximumInscribedCircle
Fonction MinimumCircumscribedCircle
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.