Saltar navegación

Documentación de FlexPro 2025

MinimumCircumscribedCircle

Calcula el círculo exterior más pequeño (MCCI) de un conjunto de puntos bidimensional (círculo envolvente). Se utiliza para determinar la redondez.

Sintaxis

MinimumCircumscribedCircle(Points, [ OutputOptions = MCCI_OUTPUT_CIRCUMSCRIBED_CIRCLE ], [ CircleSize = 5000 ] [ , ConvexHullAlgorithm = CONVEXHULL_GRAHAM_SCAN ])
o
MinimumCircumscribedCircle(Y, X, [ OutputOptions = MCCI_OUTPUT_CIRCUMSCRIBED_CIRCLE ], [ CircleSize = 5000 ] [ , ConvexHullAlgorithm = CONVEXHULL_GRAHAM_SCAN ])

 

La sintaxis de la función MinimumCircumscribedCircle consta de los siguientes elementos:

Parte

Descripción

Points

El conjunto de puntos Y y X para los que debe calcularse el círculo exterior más pequeño (círculo envolvente). Ambos componentes de la señal deben tener la misma unidad.

Las estructuras de datos permitidas son Señal. Se permiten todos los tipos de datos reales excepto Tiempo de calendario y Intervalo de tiempo.

Y

El conjunto de puntos X utilizado para calcular el círculo exterior más pequeño (círculo envolvente). Si especifica una señal, se utiliza su componente Y. La unidad debe coincidir con la unidad del argumento X.

Las estructuras de datos permitidas son Serie de datos y Señal. Se permiten todos los tipos de datos reales excepto Tiempo de calendario y Intervalo de tiempo.

X

El conjunto de puntos X utilizado para calcular el círculo exterior más pequeño (círculo envolvente). Si especifica una señal, se utiliza su componente Y. La unidad debe coincidir con la unidad del argumento Y.

Las estructuras de datos permitidas son Serie de datos y Señal. Se permiten todos los tipos de datos reales excepto Tiempo de calendario y Intervalo de tiempo.

OutputOptions

Especifica qué resultados deben devolverse. Si hay varios resultados, se emiten en forma de lista. Si, por ejemplo, se desea obtener el radio del círculo de referencia y la redondez, el argumento debe tener el valor MCCI_OUTPUT_CIRCUMSCRIBED_CIRCLE_RADIUS + MCCI_OUTPUT_ROUNDNESS.

El argumento OutputOptions puede tener los siguientes valores:

Constante

Significado

+ MCCI_OUTPUT_ALL

Todas las salidas disponibles.

+ MCCI_OUTPUT_CENTER_X

Coordenada X del centro del círculo de referencia. El resultado es un valor en coma flotante de 64 bits.

+ MCCI_OUTPUT_CENTER_Y

Coordenada Y del centro del círculo de referencia. El resultado es un valor en coma flotante de 64 bits.

+ MCCI_OUTPUT_MIDDLE_CIRCLE

El círculo central promediado de forma aritmética entre el círculo exterior más pequeño (círculo de referencia) y el círculo interior más grande en relación con el círculo de referencia. El resultado es una señal.

+ MCCI_OUTPUT_MIDDLE_CIRCLE_RADIUS

Radio del círculo central promediado de forma aritmética. El resultado es un valor en coma flotante de 64 bits.

+ MCCI_OUTPUT_INSCRIBED_CIRCLE

El círculo interior más grande en relación con el círculo de referencia. El centro del círculo interior coincide con el centro del círculo de referencia. El radio del círculo interior es la distancia mínima entre el conjunto de puntos y el centro del círculo. El resultado es una señal.

+ MCCI_OUTPUT_INSCRIBED_CIRCLE_RADIUS

Radio del círculo interior en relación con el círculo de referencia. El resultado es un valor en coma flotante de 64 bits.

+ MCCI_OUTPUT_CIRCUMSCRIBED_CIRCLE

El círculo de referencia calculado (círculo exterior más pequeño) en el plano bidimensional. El resultado es una señal.

+ MCCI_OUTPUT_CIRCUMSCRIBED_CIRCLE_RADIUS

Radio del círculo de referencia. El resultado es un valor en coma flotante de 64 bits.

+ MCCI_OUTPUT_ROUNDNESS

Desviación de redondez. Es la diferencia entre los radios de los círculos exterior e interior. El resultado es un valor en coma flotante de 64 bits.

Se establece el valor predeterminado MCCI_OUTPUT_CIRCUMSCRIBED_CIRCLE si no se especifica el argumento.

CircleSize

Especifica el número de valores para presentar los círculos ajustados. Si introduce cero, se conserva el número de valores original. El argumento solo se tiene en cuenta si se ha seleccionado uno de los círculos de la lista para OutputOptions.

Las estructuras de datos permitidas son Valor escalar. Se permiten todos los tipos de datos enteros.

El valor debe ser mayor o igual que 0.

Se establece el valor predeterminado 5000 si no se especifica el argumento.

ConvexHullAlgorithm

Determina el algoritmo del casco convexo necesario para calcular el círculo envolvente.

El argumento ConvexHullAlgorithm puede tener los siguientes valores:

Constante

Significado

CONVEXHULL_JARVIS_MARCH

Para calcular la envolvente convexa se utiliza el algoritmo de Jarvis March (también conocido como algoritmo Gift Wrapping). El tiempo de ejecución del algoritmo es O(n*h), siendo h el número de puntos de la envolvente convexa. Por tanto, el algoritmo es sensible a la salida, es decir, el tiempo de ejecución depende de los datos de entrada. En el peor de los casos, el algoritmo tiene un tiempo de ejecución cuadrático. Sin embargo, en muchos casos de aplicación el número de puntos en la envolvente convexa es pequeño, por lo que el algoritmo es más rápido que el algoritmo de Graham Scan en estos casos.

CONVEXHULL_GRAHAM_SCAN

Para calcular la envolvente convexa se utiliza el algoritmo de Graham Scan. El tiempo de ejecución del algoritmo es siempre O(n*log(n)).

Se establece el valor predeterminado CONVEXHULL_GRAHAM_SCAN si no se especifica el argumento.

Notas

Los valores se convierten en números en coma flotante de 64 bits antes del cálculo.

En el primer paso, se calcula la envolvente convexa a partir del conjunto de puntos (véase también la función ConvexHull). A continuación, se calcula el círculo exterior más pequeño de la envolvente convexa mediante el algoritmo de Skyum [1]. El tiempo de ejecución es O(n*log(n)). El círculo así calculado corresponde al círculo exterior más pequeño (círculo envolvente) del conjunto de puntos original.

Las opciones de salida del argumento OutputOptions se visualizan en el siguiente diagrama:

Se puede acceder a los resultados con los siguientes nombres de los elementos de lista:

Constante

Significado

.["Center_X"]

Coordenada X del centro del círculo de referencia.

.["Center_Y"]

Coordenada Y del centro del círculo de referencia.

.["Middle_Circle"]

Círculo central promediado de forma aritmética entre el círculo de referencia (círculo exterior más pequeño) y el círculo interior.

.["Middle_Circle_Radius"]

Radio del círculo central promediado de forma aritmética.

.["Inscribed_Circle"]

El círculo interior más grande en relación con el círculo de referencia.

.["Inscribed_Circle_Radius"]

Radio del círculo interior más grande en relación con el círculo de referencia.

.["Circumscribed_Circle"]

Círculo de referencia (círculo exterior más pequeño)

.["Circumscribed_Circle_Radius"]

Radio del círculo de referencia.

.["Roundness"]

Desviación de redondez como diferencia entre los radios de los círculos exterior e interior.

También puede utilizar siempre la sintaxis Formula.ListElementName.

Nota        Los cálculos de redondez MCCI se basan en la norma actualmente vigente para la determinación de la redondez, véase [2].

Disponibilidad

FlexPro Professional, Developer Suite

Ejemplos

MinimumCircumscribedCircle(y, x)

Calcula el círculo exterior más pequeño (MCCI) de un conjunto de puntos.

MinimumCircumscribedCircle(y, x, MCCI_OUTPUT_ROUNDNESS)

Calcula el círculo exterior más pequeño (MCCI) de un conjunto de puntos y devuelve la redondez.

MinimumCircumscribedCircle(points, MCCI_OUTPUT_CIRCUMSCRIBED_CIRCLE_RADIUS + MCCI_OUTPUT_ROUNDNESS)

Calcula el círculo exterior más pequeño (MCCI) de un conjunto de puntos. Como resultado, se emiten el radio del círculo calculado y la redondez en forma de lista.

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

Calcula el círculo exterior más pequeño (MCCI) de puntos distribuidos de forma aleatoria en el plano bidimensional.

Véase también

Función LeastSquaresCircle

Función MaximumInscribedCircle

Función MinimumZoneCircle

Función ConvexHull

Función GaussianFilter

Objeto de análisis Aproximación circular

Bibliografía

[1] Sven Skyum: A simple algorithm for computing the smallest enclosing circle. En: 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. En: Geometrical product specifications (GPS)- Roundness. 2011.