En modelado geométrico y gráficos por computadora , una curva de Bézier compuesta o spline de Bézier es una spline formada por curvas de Bézier que es al menos continua . En otras palabras, una curva de Bézier compuesta es una serie de curvas de Bézier unidas de extremo a extremo donde el último punto de una curva coincide con el punto de inicio de la siguiente curva. Dependiendo de la aplicación, se pueden agregar requisitos de suavidad adicionales (como o continuidad). [1]
Una curva de Bézier compuesta continua también se denomina polibézier , por similitud con la polilínea , pero mientras que en las polilíneas los puntos están conectados por líneas rectas, en una polibézier los puntos están conectados por curvas de Bézier. Un beziergon (también llamado bezigon ) es un camino cerrado compuesto de curvas de Bézier . Es similar a un polígono en que conecta un conjunto de vértices por líneas, pero mientras que en los polígonos los vértices están conectados por líneas rectas, en un beziergon los vértices están conectados por curvas de Bézier. [2] [3] [4] Algunos autores incluso llaman a una curva de Bézier compuesta "spline de Bézier"; [5] este último término es, sin embargo, utilizado por otros autores como sinónimo de la curva de Bézier (no compuesta), y añaden "compuesta" delante de "spline de Bézier" para denotar el caso compuesto. [6]
Quizás el uso más común de las curvas Bézier compuestas es describir el contorno de cada letra en un archivo PostScript o PDF . Dichos contornos se componen de un beziergon para letras abiertas o de varios beziergones para letras cerradas. Los sistemas de gráficos vectoriales y fuentes informáticas modernos como PostScript , Asymptote , Metafont , OpenType y SVG utilizan curvas Bézier compuestas formadas por curvas Bézier cúbicas (curvas de tercer orden) para dibujar formas curvas.
Unión suave
Una propiedad comúnmente deseada de las splines es que unan sus curvas individuales con un nivel específico de continuidad paramétrica o geométrica . Si bien las curvas individuales en la spline son completamente continuas dentro de su propio intervalo, siempre hay cierta cantidad de discontinuidad donde se encuentran las diferentes curvas.
La spline de Bézier es bastante única, ya que es una de las pocas splines que no garantiza un grado de continuidad mayor que . Sin embargo, es posible organizar puntos de control para garantizar varios niveles de continuidad en las uniones, aunque esto puede implicar una pérdida de control local si la restricción es demasiado estricta para el grado dado de la spline de Bézier.
Unión suave de Béziers cúbicos
Dadas dos curvas de Bézier cúbicas con puntos de control y respectivamente, las restricciones para asegurar la continuidad en se pueden definir de la siguiente manera:
(continuidad posicional) requiere que se encuentren en el mismo punto, lo que todos los splines de Bézier hacen por definición. En este ejemplo, el punto compartido es
(continuidad de velocidad) requiere que los puntos de control vecinos alrededor de la unión sean espejos entre sí. En otras palabras, deben seguir la restricción de
(continuidad tangente) requiere que los puntos de control vecinos sean colineales con la unión. Esto es menos estricto que la continuidad, lo que deja un grado de libertad adicional que se puede parametrizar utilizando un escalar . La restricción se puede expresar entonces mediante
Si bien las siguientes restricciones de continuidad son posibles, rara vez se utilizan con splines Bézier cúbicos, ya que otros splines como el B-spline o el β-spline [7] manejarán naturalmente restricciones más altas sin pérdida de control local.
(continuidad de aceleración) está restringida por . Sin embargo, aplicar esta restricción a lo largo de una spline Bézier cúbica completa provocará una pérdida en cascada del control local sobre los puntos tangentes. La curva seguirá pasando por cada tercer punto de la spline, pero se perderá el control sobre su forma. Para lograr la continuidad utilizando curvas cúbicas, se recomienda utilizar una B-spline cúbica uniforme, ya que garantiza la continuidad sin pérdida de control local, a expensas de que ya no se garantice que pase por puntos específicos.
(la continuidad de la curvatura) está limitada por , lo que deja dos grados de libertad en comparación con , en forma de dos escalares y . Son posibles grados más altos de continuidad geométrica, aunque se vuelven cada vez más complejos [8]
(continuidad de sacudidas) está restringida por . La aplicación de esta restricción a la spline cúbica de Bézier provocará una pérdida total del control local, ya que toda la spline ahora está completamente restringida y definida por los puntos de control de la primera curva. De hecho, se podría decir que ya no es una spline, ya que su forma ahora es equivalente a extrapolar la primera curva indefinidamente, lo que la hace no solo continua, sino , ya que las uniones entre curvas separadas ya no existen
Aproximación de arcos circulares
En caso de que las primitivas de arco circular no sean compatibles en un entorno particular, se pueden aproximar mediante curvas de Bézier . [9] Comúnmente, se utilizan ocho segmentos cuadráticos [10] o cuatro segmentos cúbicos para aproximar un círculo. Es deseable encontrar la longitud de los puntos de control que resulten en el menor error de aproximación para una cantidad dada de segmentos cúbicos.
Usando cuatro curvas
Considerando únicamente el arco circular unitario de 90 grados en el primer cuadrante , definimos los puntos finales y con puntos de control y , respectivamente, como:
De la definición de la curva de Bézier cúbica, tenemos:
Con el punto como punto medio del arco, podemos escribir las siguientes dos ecuaciones:
Resolviendo estas ecuaciones para la coordenada x (y de manera idéntica para la coordenada y) obtenemos:
Sin embargo, tenga en cuenta que la curva de Bézier resultante está completamente fuera del círculo, con una desviación máxima del radio de aproximadamente 0,00027. Al agregar una pequeña corrección a los puntos intermedios, como
La magnitud de la desviación del radio a 1 se reduce en un factor de aproximadamente 3, a 0,000068 (a expensas de la derivabilidad de la curva circular aproximada en los puntos finales).
Caso general
Podemos aproximarnos a un círculo de radio a partir de un número arbitrario de curvas de Bézier cúbicas. Supongamos que el arco comienza en el punto y termina en el punto , ubicados a distancias iguales por encima y por debajo del eje x, abarcando un arco de ángulo :
Los puntos de control se pueden escribir como: [11]
Ejemplos
Polibèzier cuadrático de ocho segmentos (rojo) que se aproxima a un círculo (negro) con puntos de control
Polibázier cúbico de cuatro segmentos (rojo) que se aproxima a un círculo (negro) con puntos de control
Fuentes
Las fuentes TrueType utilizan curvas Bézier compuestas de curvas Bézier cuadráticas (curvas de segundo orden). Para describir un diseño tipográfico típico como una fuente de computadora con una precisión determinada, las curvas Bézier de tercer orden requieren menos datos que las de segundo orden; y estas, a su vez, requieren menos datos que una serie de líneas rectas. Esto es así a pesar de que cualquier segmento de línea recta requiere menos datos que cualquier segmento de una parábola; y ese segmento parabólico, a su vez, requiere menos datos que cualquier segmento de una curva de tercer orden.
^ Eugene V. Shikin; Alexander I. Plis (14 de julio de 1995). Manual sobre splines para el usuario. CRC Press. pág. 96. ISBN 978-0-8493-9404-1.
^ API de Microsoft Polybezier
^ Referencia de API de Papyrus Beziergon
^ "Una mejor caja de crayones". InfoWorld. 1991.
^ Rebaza, Jorge (24 de abril de 2012). Un primer curso de matemáticas aplicadas. John Wiley & Sons. ISBN9781118277157.
^ (Firma), Wolfram Research (13 de septiembre de 1996). Paquetes complementarios estándar de Mathematica ® 3.0. Cambridge University Press. ISBN9780521585859.
^ Goodman, TNT (9 de diciembre de 1983). "Propiedades de los β-splines". Journal of Approximation Theory . 44 (2): 132–153. doi : 10.1016/0021-9045(85)90076-0 .
^ DeRose, Anthony D. (1 de agosto de 1985). "Continuidad geométrica: una medida de continuidad independiente de la parametrización para el diseño geométrico asistido por computadora".
^ Stanislav, G. Adam. "Dibujar un círculo con curvas de Bézier" . Consultado el 10 de abril de 2010 .
^ "Digitalización de diseños de letras". Apple . Consultado el 26 de julio de 2014 .
^ DeVeneza, Richard. "Dibujar un círculo con curvas de Bézier" (PDF) . Consultado el 10 de abril de 2010 .