Una curva de Bézier ( / b ɛ z . I . Eɪ / BEH -zee-ay ) [1] es una curva paramétrica utilizado en gráficos por ordenador y campos relacionados. [2] Las curvas, que están relacionadas con los polinomios de Bernstein , llevan el nombre de Pierre Bézier , quien las utilizó en la década de 1960 para diseñar curvas para la carrocería de los automóviles Renault . [3] Otros usos incluyen el diseño de fuentes de computadora y animación. [3] Las curvas de Bézier se pueden combinar para formar unaBézier spline , o generalizado a mayores dimensiones para formar superficies Bézier . [3] El triángulo de Bézier es un caso especial de este último.
En los gráficos vectoriales , las curvas de Bézier se utilizan para modelar curvas suaves que se pueden escalar indefinidamente. Las "rutas", como se las denomina comúnmente en los programas de manipulación de imágenes, [nota 1] son combinaciones de curvas de Bézier vinculadas. Las rutas no están limitadas por los límites de las imágenes rasterizadas y son intuitivas de modificar.
Las curvas de Bézier también se utilizan en el dominio del tiempo, particularmente en animación , [4 ] diseño de interfaz de usuario [nota 2] y suavizado de la trayectoria del cursor en interfaces controladas por la mirada. [5] Por ejemplo, una curva de Bézier se puede utilizar para especificar la velocidad en el tiempo de un objeto como un icono que se mueve de A a B, en lugar de simplemente moverse a un número fijo de píxeles por paso. Cuando los animadores o diseñadores de interfaces hablan sobre la "física" o la "sensación" de una operación, pueden estar refiriéndose a la curva de Bézier particular utilizada para controlar la velocidad en el tiempo del movimiento en cuestión.
Esto también se aplica a la robótica donde el movimiento de un brazo de soldadura, por ejemplo, debe ser suave para evitar un desgaste innecesario.
Invención
La base matemática de las curvas de Bézier (los polinomios de Bernstein) se estableció en 1912, pero los polinomios no se aplicaron a los gráficos hasta unos 50 años después, cuando el matemático Paul de Casteljau en 1959 desarrolló el algoritmo de De Casteljau , un método numéricamente estable para evaluar las curvas, y se convirtió en el primero en aplicarlos al diseño asistido por computadora en el fabricante de automóviles francés Citroën . [6] Sin embargo, de método de Casteljau fue patentado en Francia, pero no publicado hasta los años 80 [7] , mientras que los polinomios de Bézier fueron ampliamente difundidos en la década de 1960 por el francés ingeniero Pierre Bézier , que las descubrió de forma independiente y los utilizó para diseñar automóviles cuerpos en Renault .
Casos específicos
Una curva de Bézier se define mediante un conjunto de puntos de control P 0 a P n , donde n se denomina orden de la curva ( n = 1 para lineal, 2 para cuadrática, etc.). Los primeros y últimos puntos de control son siempre los puntos finales de la curva; sin embargo, los puntos de control intermedios (si los hay) generalmente no se encuentran en la curva. Las sumas de las siguientes secciones deben entenderse como combinaciones afines , es decir, los coeficientes suman 1.
Curvas lineales de Bézier
Dados los distintos puntos P 0 y P 1 , una curva de Bézier lineal es simplemente una línea recta entre esos dos puntos. La curva está dada por
y es equivalente a la interpolación lineal .
Curvas cuadráticas de Bézier
Una curva de Bézier cuadrática es el camino trazado por la función B ( t ), dados los puntos P 0 , P 1 y P 2 ,
- ,
que se puede interpretar como el interpolante lineal de los puntos correspondientes en las curvas de Bézier lineales de P 0 a P 1 y de P 1 a P 2 respectivamente. Reordenando la ecuación anterior se obtiene:
Esto se puede escribir de una manera que resalte la simetría con respecto a P 1 :
Lo que da inmediatamente la derivada de la curva de Bézier con respecto a t :
de lo cual se puede concluir que las tangentes a la curva en P 0 y P 2 se intersecan en P 1 . A medida que t aumenta de 0 a 1, la curva se aparta de P 0 en la dirección de P 1 , luego se dobla para llegar a P 2 desde la dirección de P 1 .
La segunda derivada de la curva de Bézier con respecto a t es
Curvas cúbicas de Bézier
Cuatro puntos P 0 , P 1 , P 2 y P 3 en el plano o en un espacio de mayor dimensión definen una curva de Bézier cúbica. La curva comienza en P 0 yendo hacia P 1 y llega a P 3 viniendo de la dirección de P 2 . Por lo general, no pasará por P 1 o P 2 ; estos puntos solo están ahí para proporcionar información direccional. La distancia entre P 1 y P 2 determina "qué tan lejos" y "qué tan rápido" se mueve la curva hacia P 1 antes de girar hacia P 2 .
Escribiendo B P i , P j , P k ( t ) para la curva de Bézier cuadrática definida por los puntos P i , P j y P k , la curva de Bézier cúbica se puede definir como una combinación afín de dos curvas de Bézier cuadráticas:
La forma explícita de la curva es:
Para algunas opciones de P 1 y P 2, la curva puede cruzarse o contener una cúspide .
Cualquier serie de 4 puntos distintos se puede convertir en una curva de Bézier cúbica que recorre los 4 puntos en orden. Dado el punto inicial y final de alguna curva de Bézier cúbica, y los puntos a lo largo de la curva correspondientes at = 1/3 yt = 2/3, se pueden recuperar los puntos de control de la curva de Bézier original. [8]
La derivada de la curva de Bézier cúbica con respecto a t es
La segunda derivada de la curva de Bézier con respecto a t es
Definición general
Las curvas de Bézier se pueden definir para cualquier grado n .
Definición recursiva
Una definición recursiva de la curva de Bézier de grado n la expresa como una combinación lineal punto a punto ( interpolación lineal ) de un par de puntos correspondientes en dos curvas de Bézier de grado n - 1.
Dejar denotar la curva de Bézier determinada por cualquier selección de puntos P 0 , P 1 , ..., P k . Entonces para empezar
Esta recursividad se aclara en las animaciones siguientes .
Definición explícita
La fórmula se puede expresar explícitamente de la siguiente manera (donde t 0 y (1-t) 0 se extienden continuamente para ser 1 en [0,1]):
dónde son los coeficientes binomiales .
Por ejemplo, cuando n = 5:
Terminología
Alguna terminología está asociada con estas curvas paramétricas. Tenemos
donde los polinomios
se conocen como polinomios de base de Bernstein de grado n .
Tenga en cuenta que t 0 = 1, (1 - t ) 0 = 1, y que el coeficiente binomial ,, es:
Los puntos P i se denominan puntos de control para la curva de Bézier. El polígono formado al conectar los puntos de Bézier con líneas , comenzando con P 0 y terminando con P n , se denomina polígono de Bézier (o polígono de control ). El casco convexo del polígono de Bézier contiene la curva de Bézier.
Forma polinomial
A veces es deseable expresar la curva de Bézier como un polinomio en lugar de una suma de polinomios de Bernstein menos sencillos . La aplicación del teorema del binomio a la definición de la curva seguida de alguna reordenación dará como resultado
dónde
Esto podría ser práctico si puede calcularse antes de muchas evaluaciones de ; sin embargo, se debe tener cuidado ya que las curvas de alto orden pueden carecer de estabilidad numérica ( si esto ocurre, se debe utilizar el algoritmo de De Casteljau ). Tenga en cuenta que el producto vacío es 1.
Propiedades
- La curva comienza en P 0 y termina en P n ; esta es la denominada propiedad de interpolación de punto final .
- La curva es una línea recta si y solo si todos los puntos de control son colineales .
- El inicio y el final de la curva es tangente a la primera y última sección del polígono de Bézier, respectivamente.
- Una curva se puede dividir en cualquier punto en dos subcurvas, o en muchas subcurvas arbitrariamente, cada una de las cuales también es una curva de Bézier.
- Algunas curvas que parecen simples, como el círculo , no pueden describirse exactamente mediante una curva Bézier o una curva Bézier a trozos ; aunque una curva de Bézier cúbica de cuatro piezas puede aproximarse a un círculo (ver curva de Bézier compuesta ), con un error radial máximo de menos de una parte en mil, cuando cada punto de control interno (o punto fuera de línea) es la distanciahorizontal o verticalmente desde un punto de control exterior en un círculo unitario. De manera más general, una curva de Bézier cúbica de n piezas puede aproximarse a un círculo, cuando cada punto de control interno es la distanciadesde un punto de control exterior en un círculo unitario, donde t es 360 / n grados y n > 2.
- Cada curva de Bézier cuadrática es también una curva de Bézier cúbica y, de manera más general, cada curva de grado n Bézier es también una curva de grado m para cualquier m > n . En detalle, una curva de grado n con puntos de control P 0 , ..., P n es equivalente (incluida la parametrización) a la curva de grado n + 1 con puntos de control P ' 0 , ..., P' n + 1 , dónde.
- Las curvas de Bézier tienen la propiedad de disminuir la variación . Lo que esto significa en términos intuitivos es que una curva de Bézier no "ondula" más que el polígono de sus puntos de control, y en realidad puede "ondular" menos que eso. [9]
- No hay control local en las curvas de grado n Bézier, lo que significa que cualquier cambio en un punto de control requiere un nuevo cálculo y, por lo tanto, afecta el aspecto de toda la curva, "aunque cuanto más lejos esté uno del punto de control que se cambió, menor es el cambio en la curva ". [10]
- Una curva de Bézier de orden superior a dos puede cruzarse o tener una cúspide para determinadas elecciones de los puntos de control.
La curva de segundo orden es un segmento parabólico
Una curva de Bézier cuadrática también es un segmento de una parábola . Como una parábola es una sección cónica , algunas fuentes se refieren a los Béziers cuadráticos como "arcos cónicos". [11] Con referencia a la figura de la derecha, las características importantes de la parábola se pueden derivar de la siguiente manera: [12]
- Las tangentes a la parábola en los puntos finales de la curva (A y B) se cruzan en su punto de control (C).
- Si D es el punto medio de AB, la tangente a la curva que es perpendicular a CD (línea cian discontinua) define su vértice (V). Su eje de simetría (guión-punto cian) pasa por V y es perpendicular a la tangente.
- E es cualquier punto de la curva con una tangente a 45 ° a CD (punteado verde). Si G es la intersección de esta tangente y el eje, la línea que pasa por G y es perpendicular a CD es la directriz (verde sólido).
- El foco (F) está en la intersección del eje y una línea que pasa por E y es perpendicular a CD (con puntos amarillos). El recto latus es el segmento de línea dentro de la curva (amarillo sólido).
Derivado
La derivada de una curva de orden n es
Construyendo curvas de Bézier
Curvas lineales
Se puede pensar que la t en la función para una curva de Bézier lineal describe qué tan lejos está B ( t ) de P 0 a P 1 . Por ejemplo, cuando t = 0.25, B ( t ) es un cuarto del camino desde el punto P 0 al P 1 . Como t varía de 0 a 1, B ( t ) describe una línea recta de P 0 a P 1 .
Animación de una curva de Bézier lineal, t en [0,1] |
Curvas cuadráticas
Para las curvas de Bézier cuadráticas, se pueden construir puntos intermedios Q 0 y Q 1 de manera que cuando t varíe de 0 a 1:
- El punto Q 0 ( t ) varía de P 0 a P 1 y describe una curva de Bézier lineal.
- El punto Q 1 ( t ) varía de P 1 a P 2 y describe una curva de Bézier lineal.
- El punto B ( t ) se interpola linealmente entre Q 0 ( t ) y Q 1 ( t ) y describe una curva de Bézier cuadrática.
Construcción de una curva de Bézier cuadrática | Animación de una curva de Bézier cuadrática, t en [0,1] |
Curvas de orden superior
En el caso de curvas de orden superior, se necesitan en consecuencia más puntos intermedios. Para curvas cúbicas se pueden construir puntos intermedios Q 0 , Q 1 y Q 2 que describen curvas de Bézier lineales, y puntos R 0 y R 1 que describen curvas de Bézier cuadráticas:
Construcción de una curva de Bézier cúbica | Animación de una curva de Bézier cúbica, t en [0,1] |
Para curvas de cuarto orden se pueden construir puntos intermedios Q 0 , Q 1 , Q 2 y Q 3 que describen curvas de Bézier lineales, puntos R 0 , R 1 y R 2 que describen curvas de Bézier cuadráticas y puntos S 0 y S 1 que describir curvas de Bézier cúbicas:
Construcción de una curva de Bézier cuartica | Animación de una curva de Bézier cuartica, t en [0,1] |
Para curvas de quinto orden, se pueden construir puntos intermedios similares.
Animación de una curva de Bézier de quinto orden, t en [0,1] en rojo. También se muestran las curvas de Bézier para cada uno de los órdenes inferiores. |
Estas representaciones se basan en el proceso utilizado en el algoritmo de De Casteljau para calcular las curvas de Bézier. [13]
Desplazamientos (también conocidos como trazos) de las curvas de Bézier
La curva en un desplazamiento fijo de una curva de Bézier dada, llamada curva de desplazamiento o paralela en matemáticas (que se encuentra "paralela" a la curva original, como el desplazamiento entre rieles en una vía de ferrocarril ), no puede formarse exactamente por una curva de Bézier ( excepto en algunos casos triviales). En general, la curva de desplazamiento de dos lados de un Bézier cúbico es una curva algebraica de décimo orden [14] y más generalmente para un Bézier de grado n la curva de desplazamiento de dos lados es una curva algebraica de grado 4 n -2. [15] Sin embargo, existen métodos heurísticos que suelen dar una aproximación adecuada para fines prácticos. [dieciséis]
En el campo de los gráficos vectoriales , pintar dos curvas de desplazamiento distanciadas simétricamente se llama trazo (la curva de Bézier o en general un camino de varios segmentos de Bézier). [14] La conversión de curvas de desplazamiento a contornos Bézier rellenos es de importancia práctica en la conversión de fuentes definidas en Metafont , que permite trazar curvas Bézier, a las fuentes PostScript tipo 1 más ampliamente utilizadas , que solo permiten (con fines de eficiencia) lo matemático operación más sencilla de rellenar un contorno definido por curvas de Bézier (que no se intersecan automáticamente). [17]
Grado de elevación
Una curva de Bézier de grado n se puede convertir en una curva de Bézier de grado n + 1 con la misma forma . Esto es útil si el software admite curvas de Bézier solo de un grado específico. Por ejemplo, los sistemas que solo pueden trabajar con curvas de Bézier cúbicas pueden trabajar implícitamente con curvas cuadráticas utilizando su representación cúbica equivalente.
Para hacer elevación de grado, usamos la igualdad Cada componente se multiplica por (1 - t ) yt , aumentando así un grado por uno, sin cambiar el valor. Aquí está el ejemplo de aumento de grado de 2 a 3.
Para n arbitrario usamos igualdades
Por lo tanto:
introduciendo arbitrario y .
Por lo tanto, los nuevos puntos de control son [18]
Elevación de grado repetida
El concepto de grado de elevación se puede repetir en un polígono de control R para obtener una secuencia de polígonos de control R , R 1 , R 2 , etc. Después de r elevaciones de grado, el polígono R r tiene los vértices P 0, r , P 1, r , P 2, r , ..., P n + r , r dados por [18]
También se puede demostrar que para la curva Bézier subyacente B ,
Curvas racionales de Bézier
La curva racional de Bézier agrega pesos ajustables para proporcionar aproximaciones más cercanas a formas arbitrarias. El numerador es una curva de Bézier ponderada en forma de Bernstein y el denominador es una suma ponderada de polinomios de Bernstein . Las curvas racionales de Bézier se pueden utilizar, entre otros usos, para representar segmentos de secciones cónicas de forma exacta, incluidos los arcos circulares. [19]
Dados n + 1 puntos de control P 0 , ..., P n , la curva de Bézier racional se puede describir mediante
o simplemente
La expresión se puede ampliar utilizando sistemas numéricos además de reales para los pesos. En el plano complejo, los puntos {1}, {-1} y {1} con pesos {}, {1} y {} generar un círculo completo con radio uno. Para curvas con puntos y pesos en un círculo, los pesos se pueden escalar sin cambiar la forma de la curva. [20] Al escalar el peso central de la curva anterior en 1.35508 se obtiene una parametrización más uniforme.
Aplicaciones
Gráficos de computadora
Las curvas de Bézier se utilizan ampliamente en gráficos por computadora para modelar curvas suaves. Como la curva está completamente contenida en el casco convexo de sus puntos de control , los puntos pueden mostrarse gráficamente y usarse para manipular la curva de forma intuitiva. Las transformaciones afines como la traslación y la rotación se pueden aplicar en la curva aplicando la transformación respectiva en los puntos de control de la curva.
Las curvas de Bézier cuadráticas y cúbicas son las más comunes. Las curvas de mayor grado son más costosas desde el punto de vista computacional de evaluar. Cuando se necesitan formas más complejas, las curvas Bézier de bajo orden se unen, produciendo una curva Bézier compuesta . Una curva de Bézier compuesta se conoce comúnmente como una "ruta" en lenguajes de gráficos vectoriales (como PostScript ), estándares de gráficos vectoriales (como SVG ) y programas de gráficos vectoriales (como Artline , Timeworks Publisher , Adobe Illustrator , CorelDraw , Inkscape y Allegro ) . Para unir las curvas de Bézier en una curva de Bézier compuesta sin torceduras, una propiedad llamada G1 continua , basta con forzar el punto de control en el que dos curvas de Bézier constituyentes se encuentran para que se encuentre en la línea definida por los dos puntos de control a cada lado.
El método más simple para escanear convertir ( rasterizar ) una curva de Bézier es evaluarla en muchos puntos poco espaciados y escanear convertir la secuencia aproximada de segmentos de línea. Sin embargo, esto no garantiza que la salida rasterizada se vea lo suficientemente suave, porque los puntos pueden estar demasiado espaciados. Por el contrario, puede generar demasiados puntos en áreas donde la curva es casi lineal. Un método adaptativo común es la subdivisión recursiva, en la que se comprueban los puntos de control de una curva para ver si la curva se aproxima a una línea recta dentro de una pequeña tolerancia. En caso contrario, la curva se subdivide paramétricamente en dos segmentos, 0 ≤ t ≤ 0,5 y 0,5 ≤ t ≤ 1, y el mismo procedimiento se aplica de forma recursiva a cada mitad. También existen métodos de diferenciación directa, pero se debe tener mucho cuidado al analizar la propagación de errores. [22]
Los métodos analíticos en los que se cruza un Bézier con cada línea de exploración implican encontrar raíces de polinomios cúbicos (para Béziers cúbicos) y tratar con raíces múltiples, por lo que no se utilizan con frecuencia en la práctica. [22]
El algoritmo de rasterización utilizado en Metafont se basa en la discretización de la curva, de modo que se aproxime mediante una secuencia de " movimientos de torre " que son puramente verticales o puramente horizontales, a lo largo de los límites de los píxeles. Con ese fin, el plano se divide primero en ocho sectores de 45 ° (por los ejes de coordenadas y las dos líneas), entonces la curva se descompone en segmentos más pequeños de manera que la dirección de un segmento de la curva permanece dentro de un sector; dado que la velocidad de la curva es un polinomio de segundo grado,los valores donde es paralelo a una de estas líneas se pueden hacer resolviendo ecuaciones cuadráticas . Dentro de cada segmento, domina el movimiento horizontal o vertical, y el número total de pasos en cualquier dirección se puede leer en las coordenadas del punto final; en, por ejemplo, domina el movimiento horizontal del sector de 0–45 ° hacia la derecha, por lo que solo queda decidir entre qué pasos a la derecha debe dar un paso hacia arriba la curva. [23]
También hay una forma de curva modificada del algoritmo de dibujo de líneas de Bresenham de Zingl que realiza esta rasterización subdividiendo la curva en partes racionales y calculando el error en la ubicación de cada píxel de modo que viaje en un ángulo de 45 ° o en línea recta dependiendo del error compuesto como itera a través de la curva. Esto reduce el cálculo del siguiente paso a una serie de sumas y restas de números enteros . [24]
Animación
En aplicaciones de animación, como Adobe Flash y Synfig , las curvas de Bézier se utilizan para delinear, por ejemplo, el movimiento. Los usuarios delinean la ruta deseada en las curvas de Bézier y la aplicación crea los marcos necesarios para que el objeto se mueva a lo largo de la ruta. [25] [26]
En la animación 3D, las curvas de Bézier se utilizan a menudo para definir rutas 3D, así como curvas 2D para la interpolación de fotogramas clave. [27] Las curvas de Bézier se utilizan ahora con mucha frecuencia para controlar la aceleración de la animación en CSS , JavaScript , JavaFx y Flutter SDK . [4]
Fuentes
Las fuentes TrueType utilizan curvas Bézier compuestas compuestas por curvas Bézier cuadráticas . Otros lenguajes y herramientas de imágenes (como PostScript , Asymptote , Metafont y SVG ) utilizan Béziers compuestos compuestos de curvas Bézier cúbicas para dibujar formas curvas. Las fuentes OpenType pueden usar cualquier tipo, dependiendo del tipo de fuente. [28]
El renderizado interno de todas las curvas de Bézier en renderizadores de fuentes o gráficos vectoriales las dividirá de forma recursiva hasta el punto en que la curva sea lo suficientemente plana para dibujarse como una serie de segmentos lineales o circulares. El algoritmo de división exacto depende de la implementación, solo se deben respetar los criterios de planitud para alcanzar la precisión necesaria y evitar cambios de curvatura locales no monótonos. La función de "curva suave" de los gráficos en Microsoft Excel también utiliza este algoritmo. [29]
Debido a que los arcos de círculos y elipses no se pueden representar exactamente mediante curvas de Bézier, primero se aproximan mediante curvas de Bézier, que a su vez se aproximan mediante arcos de círculos. Esto es ineficiente ya que también existen aproximaciones de todas las curvas de Bézier utilizando arcos de círculos o elipses, que se pueden representar de forma incremental con precisión arbitraria. Otro enfoque, utilizado por los adaptadores de gráficos de hardware modernos con geometría acelerada, puede convertir exactamente todas las curvas (o superficies) de Bézier y cónicas en NURBS , que se pueden representar de forma incremental sin dividir primero la curva de forma recursiva para alcanzar la condición de planitud necesaria. Este enfoque también permite preservar la definición de la curva en todas las transformaciones y proyecciones 2D y 3D lineales o en perspectiva. [ cita requerida ]
Los motores de fuentes, como FreeType , dibujan las curvas (y líneas) de la fuente en una superficie pixelada mediante un proceso conocido como rasterización de fuentes . [11]
Robótica
Las curvas de Bézier se pueden utilizar en robótica para producir trayectorias de un efector final debido a la virtud de la capacidad del polígono de control para dar una indicación clara de si la trayectoria está colisionando con algún obstáculo u objeto cercano. [30] Además, las trayectorias del espacio articular se pueden diferenciar con precisión utilizando curvas de Bézier. En consecuencia, las derivadas de las trayectorias del espacio articular se utilizan en el cálculo de la dinámica y el esfuerzo de control (perfiles de par) del manipulador robótico. [30]
Ver también
- Superficie Bézier
- B-spline
- GEM / 4 y GEM / 5
- Curva de Hermite
- NURBS
- Arte de cuerdas : las curvas de Bézier también están formadas por muchas formas comunes de arte de cuerdas, donde las cuerdas se enrollan a través de un marco de clavos. [31]
- Propiedad de disminución de la variación de las curvas de Bézier
Notas
- ^ Programas de manipulación de imágenes como Inkscape , Adobe Photoshop y GIMP .
- ^ En aplicaciones de animación como Adobe Flash , Adobe After Effects , Microsoft Expression Blend , Blender , Autodesk Maya y Autodesk 3ds Max .
Referencias
Citas
- ^ Wells, John (3 de abril de 2008). Diccionario de pronunciación Longman (3ª ed.). Pearson Longman. ISBN 978-1-4058-8118-0.
- ^ Mortenson, Michael E. (1999). Matemáticas para aplicaciones de gráficos por ordenador . Industrial Press Inc. pág. 264. ISBN 9780831131111.
- ^ a b c Hazewinkel, Michiel (1997). Enciclopedia de Matemáticas: Suplemento . 1 . Springer Science & Business Media. pag. 119. ISBN 9780792347095.
- ^ a b "Clase cúbica - biblioteca de animación - Dart API" . api.flutter.dev . Consultado el 26 de abril de 2021 .
- ^ Biswas, Pradipta; Langdon, Pat (3 de abril de 2015). "Sistema de seguimiento ojo-mirada inteligente multimodal". Revista Internacional de Interacción Hombre-Computadora . 31 (4): 277-294. doi : 10.1080 / 10447318.2014.1001301 . ISSN 1044-7318 . S2CID 36347027 .
- ^ Gerald E. Farin; Josef Hoschek; Myung-Soo Kim (2002). Manual de diseño geométrico asistido por computadora . Elsevier. págs. 4–6. ISBN 978-0-444-51104-1.
- ^ Paul de Casteljau. Mathématiques et CAO. Tomo 2: Formes à pôles . ISBN 9782866010423.
- ^ John Burkardt. "Forzar la interpolación de Bezier" . Archivado desde el original el 25 de diciembre de 2013.
- ^ Teófilo González ; Jorge Díaz-Herrera; Allen Tucker (2014). Manual de Computación, Tercera Edición: Ciencias de la Computación e Ingeniería de Software . Prensa CRC. página 32-14. ISBN 978-1-4398-9852-9.
- ^ Max K. Agoston (2005). Gráficos por Computadora y Modelado Geométrico: Implementación y Algoritmos . Springer Science & Business Media. pag. 404. ISBN 978-1-84628-108-2.
- ^ a b "Convenciones de glifos de FreeType / VI. Esquemas de FreeType" . El proyecto de tipo libre . 13 de febrero de 2018.
"Convenciones de glifos de FreeType - Versión 2.1 / VI. Esquemas de FreeType" . 6 de marzo de 2011. Archivado desde el original el 29 de septiembre de 2011 . - ^ Duncan Marsh (2005). Geometría aplicada para infografía y CAD . Serie de Matemáticas de Pregrado de Springer (2ª ed.). ISBN 978-1-85233-801-5. ASIN 1852338016 .
- ^ Shene, CK "Encontrar un punto en una curva de Bézier: algoritmo de De Casteljau" . Consultado el 6 de septiembre de 2012 .
- ^ a b Mark Kilgard (10 de abril de 2012). "Gráficos vectoriales de CS 354 y renderizado de rutas" . pag. 28.
- ^ Rida T. Farouki. "Introducción a las curvas de Pitágoras-hodógrafa" (PDF) .[ enlace muerto permanente ] , en particular p. 16 "taxonomía de curvas compensadas".
- ^ Por ejemplo: [1] o [2] . Para obtener una encuesta, consulte [3] .
- ^ Richard J. Kinch (1995). "MetaFog: Conversión de formas Metafont en contornos" (PDF) . Remolcador . 16 (3 – Actas de la Reunión Anual de 1995).
- ^ a b Farin, Gerald (1997). Curvas y superficies para diseño geométrico asistido por computadora (4 ed.). Libros de ciencia y tecnología de Elsevier . ISBN 978-0-12-249054-5.
- ^ Neil Dodgson (25 de septiembre de 2000). "Algunos elementos matemáticos de gráficos: B-splines racionales" . Consultado el 23 de febrero de 2009 .
- ^ J. Sánchez-Reyes (noviembre de 2009). "Curvas de Bézier racionales complejas". Diseño geométrico asistido por computadora . 26 (8): 865–876. doi : 10.1016 / j.cagd.2009.06.003 .
- ^ Alexander Reshetov y David Luebke, Intersector de rayo fantasma-cabello. En Proceedings of the ACM on Computer Graphics and Interactive Techniques (1 de agosto de 2018). [4]
- ^ a b Xuexiang Li y Junxiao Xue. "Curva de Bézier cuadrática compleja en círculo unitario" . Zhengzhou, China: Escuela de Software, Universidad de Zhengzhou.
- ^ Partes 19-22 de Knuth, Donald E. (1986). Metafont: el programa . Addison-Wesley. ISBN 0-201-13438-1.
- ^ Zingl, Alois "Un algoritmo de rasterización para dibujar curvas" (2012) http://members.chello.at/~easyfilter/Bresenham.pdf
- ^ "Uso de trayectorias de movimiento en animaciones" . Adobe . Consultado el 11 de abril de 2019 .
- ^ "Seguir una spline" . Synfig Wiki . Consultado el 11 de abril de 2019 .
- ^ Dodgson, Neil A. (1999). "Notas de clase de gráficos avanzados" (PDF) . cl.cam.ac.uk . Laboratorio de Computación de la Universidad de Cambridge.
- ^ "La diferencia entre CFF y TTF" . Saber cómo . Linotipo. Archivado desde el original el 3 de julio de 2017 . Consultado el 3 de julio de 2018 .
El formato OpenType se formuló en 1996. En 2003, comenzó a reemplazar dos formatos competidores: las fuentes Type1, desarrolladas por Adobe y basadas en [P] ost [S] cript, y las fuentes TrueType, especificadas por Microsoft y Apple. (...) TTF significa TrueTypeFont e indica que los datos de la fuente son los mismos que en las fuentes TrueType. CFF significa el formato de fuente Type1. Estrictamente hablando, se refiere al formato de fuente compacto, que se utiliza en los procesos de compresión para las fuentes Type2. (...) el formato cúbico Bézier de las fuentes Type1 ahorra más espacio en comparación con el formato cuadrático de las fuentes TrueType. Algunos kilobytes se pueden guardar en fuentes grandes y elaboradas, lo que puede representar una ventaja en la Web. Por otro lado, la información de sugerencias más detallada de las fuentes TrueType permite una optimización muy extensa para el uso de la pantalla.
- ^ "smooth_curve_bezier_example_file.xls" . Análisis de las máquinas rotativas, Inc . Archivado desde el original el 18 de julio de 2011 . Consultado el 5 de febrero de 2011 .
- ^ a b Malik, Aryslan; Henderson, Troy; Prazenica, Richard (enero de 2021). "Generación de trayectorias para un sistema robótico multicuerpo utilizando el producto de la formulación de exponenciales" . Foro AIAA Scitech 2021 : 2016. doi : 10.2514 / 6.2021-2016 .
- ^ Gross, R. (2014). "Puentes, arte de cuerdas y curvas de Bézier". En Pitici, Mircea (ed.). The Best Writing on Mathematics 2013 . The Best Writing on Mathematics 2013 . Penrose, R. (Autor) y Pitici, M. (Ed.). Prensa de la Universidad de Princeton. págs. 77–89. doi : 10.1515 / 9781400847990-011 . ISBN 9780691160412. JSTOR j.ctt4cgb74.13 .
Fuentes
- Rida T. Farouki (agosto de 2012). "La base polinomial de Bernstein: una retrospectiva centenaria" (PDF) . Diseño geométrico asistido por computadora . 29 (6): 379–419. doi : 10.1016 / j.cagd.2012.03.001 .
- Paul Bourke (19 de julio de 2009). Superficies Bézier (en 3D) . Archivado desde el original el 19 de julio de 2009.
- Donald Knuth (1986). Metafont: el programa . Addison-Wesley. págs. 123-131.Excelente discusión de los detalles de implementación; disponible de forma gratuita como parte de la distribución de TeX.
- Thomas Sederberg. Curvas de Bézier (PDF) . Archivado desde el original (PDF) el 21 de febrero de 2006 . Consultado el 14 de septiembre de 2005 .
- JD Foley; et al. (1992). Gráficos por computadora: Principios y práctica en C (2ª ed.). Addison Wesley.
- Rajiv Chandel (20 de marzo de 2014). "Implementación de curvas de Bezier en juegos" .
Otras lecturas
- A Primer on Bézier Curves : un libro en línea de código abierto que explica las curvas de Bézier y los algoritmos gráficos asociados, con gráficos interactivos
- Curvas de Bézier cúbicas - Bajo el capó (video) - video que muestra cómo las computadoras representan una curva de Bézier cúbica, por Peter Nowell
- De Bézier a Bernstein Feature Column de la American Mathematical Society
- "Curva de Bézier" , Enciclopedia de Matemáticas , EMS Press , 2001 [1994]
- Prautzsch, Hartmut; Boehm, Wolfgang; Paluszny, Marco (2002). Técnicas Bézier y B-Spline . Springer Science & Business Media. ISBN 978-3-540-43761-1.
- Gallier, Jean (1999). "Capítulo 5. Curvas polinomiales como curvas de Bézier" . Curvas y superficies en el modelado geométrico: teoría y algoritmos . Morgan Kaufmann. Este libro está agotado y disponible gratuitamente por parte del autor.
- Farin, Gerald E. (2002). Curvas y superficies para CAGD: una guía práctica (5ª ed.). Morgan Kaufmann. ISBN 978-1-55860-737-8.
- Weisstein, Eric W. "Curva de Bézier" . MathWorld .
- Hoffmann, Gernot. "Curvas de Bézier" (PDF) . Archivado desde el original (PDF) en 2006-12-02. (60 páginas)
- Ahn, Young Joon (2004). "Aproximación de arcos circulares y curvas desplazadas por curvas de Bézier de alto grado" . Revista de Matemática Computacional y Aplicada . 167 (2): 405–416. Código bibliográfico : 2004JCoAM.167..405A . doi : 10.1016 / j.cam.2003.10.008 .
- Davies, Jason. "Curvas animadas de Bézier" .
enlaces externos
- Codigo de computadora
- TinySpline: biblioteca C de código abierto para curvas NURBS, B-splines y Bézier con enlaces para varios idiomas
- Biblioteca C ++ para generar funciones Bézier en tiempo de compilación