MinimumCircumscribedCircle (FPScript)
Berechnet den kleinsten äußeren Kreis (MCCI) einer zweidimensionalen Punktemenge (Hüllkreis). Wird verwendet zur Rundheitsbestimmung.
Syntax
MinimumCircumscribedCircle(Points, [ OutputOptions = MCCI_OUTPUT_CIRCUMSCRIBED_CIRCLE ], [ CircleSize = 5000 ] [ , ConvexHullAlgorithm = CONVEXHULL_GRAHAM_SCAN ])
oder
MinimumCircumscribedCircle(Y, X, [ OutputOptions = MCCI_OUTPUT_CIRCUMSCRIBED_CIRCLE ], [ CircleSize = 5000 ] [ , ConvexHullAlgorithm = CONVEXHULL_GRAHAM_SCAN ])
Die Syntax der MinimumCircumscribedCircle-Funktion besteht aus folgenden Teilen:
Teil |
Beschreibung |
||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Points |
Die Y- und X-Punktemenge, für die der kleinste äußere Kreis (Hüllkreis) berechnet werden soll. Beide Komponenten des Signals müssen die gleiche Einheit besitzen. Erlaubte Datenstrukturen sind Signal. Es sind alle reellen Datentypen erlaubt außer Kalenderzeit und Zeitspanne. |
||||||||||||||||||||||
Y |
Die Y-Punktemenge, die zur Berechnung des kleinsten äußeren Kreises (Hüllkreis) verwendet wird. Wenn Sie ein Signal angeben, wird dessen Y-Komponente verwendet. Die Einheit muss mit der Einheit des Arguments X übereinstimmen. Erlaubte Datenstrukturen sind Datenreihe und Signal. Es sind alle reellen Datentypen erlaubt außer Kalenderzeit und Zeitspanne. |
||||||||||||||||||||||
X |
Die X-Punktemenge, die zur Berechnung des kleinsten äußeren Kreises (Hüllkreis) wird. Wenn Sie ein Signal angeben, wird dessen Y-Komponente verwendet. Die Einheit muss mit der Einheit des Arguments Y übereinstimmen. Erlaubte Datenstrukturen sind Datenreihe und Signal. Es sind alle reellen Datentypen erlaubt außer Kalenderzeit und Zeitspanne. |
||||||||||||||||||||||
OutputOptions |
Gibt an, welche Ergebnisse zurückgegeben werden sollen. Mehrere Ergebnisse werden als Liste ausgegeben. Wenn z. B. der Radius des Referenzkreises und die Rundheit ausgegeben werden sollen, so muss das Argument den Wert MCCI_OUTPUT_CIRCUMSCRIBED_CIRCLE_RADIUS + MCCI_OUTPUT_ROUNDNESS enthalten. Das Argument OutputOptions kann folgende Werte haben:
Wenn das Argument nicht angegeben wird, wird es auf den Vorgabewert MCCI_OUTPUT_CIRCUMSCRIBED_CIRCLE gesetzt. |
||||||||||||||||||||||
CircleSize |
Gibt die Anzahl der Werte zur Darstellung der gefitteten Kreise an. Wenn Sie Null angeben, bleibt die ursprüngliche Werteanzahl erhalten. Das Argument wird nur berücksichtigt, wenn für OutputOptions einer der aufgelisteten Kreise gewählt wurde. Erlaubte Datenstrukturen sind Einzelwert. Es sind alle ganzzahligen Datentypen erlaubt. Der Wert muss größer gleich 0 sein. Wenn das Argument nicht angegeben wird, wird es auf den Vorgabewert 5000 gesetzt. |
||||||||||||||||||||||
ConvexHullAlgorithm |
Bestimmt den Algorithmus der zur Berechnung des Hüllkreis benötigten konvexen Hülle. Das Argument ConvexHullAlgorithm kann folgende Werte haben:
Wenn das Argument nicht angegeben wird, wird es auf den Vorgabewert CONVEXHULL_GRAHAM_SCAN gesetzt. |
Anmerkungen
Die Werte werden vor der Berechnung in 64-Bit Fließkommazahlen gewandelt.
Von der Punktemenge wird im ersten Schritt zuerst die konvexe Hülle berechnet (siehe auch ConvexHull-Funktion). Anschließend wird der kleinste äußere Kreis der konvexen Hülle mit Hilfe des Skyum-Algorithmus [1] berechnet. Die Laufzeit hierfür beträgt O(n*log(n)). Der dadurch berechnete Kreis stimmt mit dem kleinsten äußeren Kreis (Hüllkreis) der ursprünglichen Punktemenge überein.
Die Ausgabeoptionen des Arguments OutputOptions sind im folgenden Diagramm visualisiert:
Auf die Ergebnisse kann mit folgenden Listenelementnamen zugegriffen werden:
Konstante |
Bedeutung |
---|---|
.["Center_X"] |
X-Koordinate des Kreiszentrums des Referenzkreises. |
.["Center_Y"] |
Y-Koordinate des Kreiszentrums des Referenzkreises. |
.["Middle_Circle"] |
Arithmetisch gemittelter Mittelkreis zwischen Referenzkreis (kleinster äußerer Kreis) und Innenkreis. |
.["Middle_Circle_Radius"] |
Radius des arithmetisch gemittelten Mittelkreises. |
.["Inscribed_Circle"] |
Der auf den Referenzkreis bezogene größte Innenkreis. |
.["Inscribed_Circle_Radius"] |
Radius des auf den Referenzkreis bezogenen größten Innenkreises. |
.["Circumscribed_Circle"] |
Referenzkreis (kleinster äußerer Kreis). |
.["Circumscribed_Circle_Radius"] |
Radius des Referenzkreises. |
.["Roundness"] |
Rundheitsabweichung als Differenz der Radien des Außen- und Innenkreises. |
Sie können auch stets die Syntax Formel.Listenelementname verwenden.
Hinweis Die MCCI-Rundheitsberechnungen orientieren sich an der aktuell gültigen Norm zur Rundheitsbestimmung, siehe [2].
Verfügbarkeit
FlexPro Professional, Developer Suite
Beispiele
MinimumCircumscribedCircle(y, x)
Berechnet den kleinsten äußeren Kreis (MCCI) einer Punktemenge.
MinimumCircumscribedCircle(y, x, MCCI_OUTPUT_ROUNDNESS)
Berechnet den kleinsten äußeren Kreis (MCCI) einer Punktemenge und gibt nur die Rundheit zurück.
MinimumCircumscribedCircle(points, MCCI_OUTPUT_CIRCUMSCRIBED_CIRCLE_RADIUS + MCCI_OUTPUT_ROUNDNESS)
Berechnet den kleinsten äußeren Kreis (MCCI) einer Punktemenge. Als Ergebnis wird der Radius des ermittelten Kreises und die Rundheit als Liste ausgegeben.
Dim alpha = Series(0, 2*PI, 0.05)
Dim r = 13.5 + Noise(1 # NumberOfRows(alpha), NOISE_NORMAL)
Dim points = Signal(Noise(1) + r*Sin(alpha), Noise(1) + r*Cos(alpha))
List("Points", points, "Circumscribed Circle", MinimumCircumscribedCircle(points))
Berechnet den kleinsten äußeren Kreis (MCCI) von zufällig verteilten Punkten in der zweidimensionalen Ebene.
Siehe auch
MaximumInscribedCircle-Funktion
Analyseobjekt Kreisapproximation
Literatur
[1] Sven Skyum: A simple algorithm for computing the smallest enclosing circle. In: Information Processing Letters, Vol. 37, Issue 3, Pages 121-125. https://doi.org/10.1016/0020-0190(91)90030-L,1991.
[2] 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. In: Geometrical product specifications (GPS)- Roundness. 2011.