Saltar navegación

Documentación de FlexPro 2025

MaximumInscribedCircle

Calcula el círculo interior más grande (MICI) de un conjunto bidimensional de puntos. Se utiliza para determinar la redondez.

Sintaxis

MaximumInscribedCircle(Points, [ OutputOptions = MICI_OUTPUT_INSCRIBED_CIRCLE ] [ , CircleSize = 5000 ])
o
MaximumInscribedCircle(Y, X, [ OutputOptions = MICI_OUTPUT_INSCRIBED_CIRCLE ] [ , CircleSize = 5000 ])

 

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

Parte

Descripción

Points

El conjunto de puntos Y y X para los que debe calcularse el círculo interior más grande. 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 Y utilizado para calcular el círculo interior más grande. 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 interior más grande. 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 MICI_OUTPUT_INSCRIBED_CIRCLE_RADIUS + MICI_OUTPUT_ROUNDNESS.

El argumento OutputOptions puede tener los siguientes valores:

Constante

Significado

+ MICI_OUTPUT_ALL

Todas las salidas disponibles.

+ MICI_OUTPUT_CENTER_X

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

+ MICI_OUTPUT_CENTER_Y

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

+ MICI_OUTPUT_MIDDLE_CIRCLE

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

+ MICI_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.

+ MICI_OUTPUT_INSCRIBED_CIRCLE

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

+ MICI_OUTPUT_INSCRIBED_CIRCLE_RADIUS

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

+ MICI_OUTPUT_CIRCUMSCRIBED_CIRCLE

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

+ MICI_OUTPUT_CIRCUMSCRIBED_CIRCLE_RADIUS

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

+ MICI_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 MICI_OUTPUT_INSCRIBED_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.

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 triangulación de Delaunay para generar una red triangular a partir del conjunto de puntos (algoritmo utilizado con tiempo de ejecución O(n*log(n)): construcción incremental aleatoria de [1]). El círculo interior más grande corresponde entonces al círculo con la mayor extensión de todos los triángulos contenidos en la triangulación.

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 interior más grande) y el círculo exterior.

.["Middle_Circle_Radius"]

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

.["Inscribed_Circle"]

Círculo de referencia (círculo interior más grande).

.["Inscribed_Circle_Radius"]

Radio del círculo de referencia.

.["Circumscribed_Circle"]

El círculo exterior más pequeño en relación con el círculo de referencia.

.["Circumscribed_Circle_Radius"]

Radio del círculo exterior más pequeño en relación con el 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 MICI se basan en la norma actualmente vigente para la determinación de la redondez, véase [2].

Disponibilidad

FlexPro Professional, Developer Suite

Ejemplos

MaximumInscribedCircle(y, x)

Calcula el círculo interior más grande (MICI) de un conjunto de puntos.

MaximumInscribedCircle(y, x, MICI_OUTPUT_ROUNDNESS)

Calcula el círculo interior más grande (MICI) de un conjunto de puntos y devuelve solo la redondez.

MaximumInscribedCircle(points, MICI_OUTPUT_INSCRIBED_CIRCLE_RADIUS + MICI_OUTPUT_ROUNDNESS)

Calcula el círculo interior más grande (MICI) 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, "Inscribed Circle", MaximumInscribedCircle(points))
 

Calcula el círculo interior más grande (MICI) de puntos distribuidos de forma aleatoria en el plano bidimensional.

Véase también

Función LeastSquaresCircle

Función MinimumCircumscribedCircle

Función MinimumZoneCircle

Función GaussianFilter

Objeto de análisis Aproximación circular

Bibliografía

[1] Leonidas J. Guibas, Donald E. Knuth, and Micha Sharir: Randomized Incremental Construction of Delaunay and Voronoi Diagrams. En: Algorithmica, Vol. 7, Pages 381-413. https://link.springer.com/article/10.1007/BF01758770, 1992.

[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.