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:
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 MinimumCircumscribedCircle
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.