miércoles, 9 de octubre de 2019

curvas de Bézier

Curvas de Bézier:

Destacamos este elemento de dibujo de Inkscape ya que las herramientas de dibujo libre que incorporan la mayoría de programas vectoriales se basan en este concepto para el trazado de líneas curvas.
Este tipo de curvas fue desarrollado por Pierre Bézier por encargo de la empresa de automóviles Renault™ que buscaba una representación matemática para definir las transiciones suaves en la curvatura de las líneas de sus automóviles.
Curvas Bézier
Se generan a partir de funciones polinómicas de grado tres[1] que permiten la representación de cualquier forma curvada y evitan la complicación innecesaria de cálculos matemáticos que se produciría usando polinomios de mayor grado.
Cualquier trazado de estas características está definido por una serie de puntos por los que pasa la curva y otros exteriores a ella que definen sus puntos de inflexión, es decir, aquellos en que cambia de curvatura, pasando de cóncava a convexa o viceversa.

Manejadores de la curva
En un trazado Bézier existen "manejadores" en cada uno de sus nodos de manera que se puede alterar la curvatura a voluntad para adaptar el trazo a cualquier forma imaginable, controlando la suavidad de las zonas de transición.




Curvas de B-SPLINE:


Consideremos una parábola parametrizada en un intervalo [u1,u2] por c(u). Usando la multiafinidad de la polar, podemos expresar c(u) como un paso del algoritmo de de Casteljau,
c(u) = c[u,u] =u2-u

u2-u1
c[u1,u]+u-u1

u2-u1
c[u,u2]  ,

y con otro paso del algoritmo de de Casteljau, pero esta vez usando nudos auxiliares u0,u3,
c(u)
=
u2-u

u2-u1
(u2-u

u2-u0
c[u0,u1]+u-u0

u2-u0
c[u1,u2])
+
u-u1

u2-u1
(u3-u

u3-u1
c[u1,u2]+u-u1

u3-u1
c[u2,u3])  ,
(14)

con lo cual hemos expresado cualquier punto c(u) en función de tres vértices, c[u0,u1],c[u1,u2],c[u2,u 3], por ninguno de los cuales pasará en general la curva.  Ejemplo

Nótese que, en el caso particular en el que u0 = u1, u3 = u2, recuperamos precisamente el algoritmo de de Casteljau original para el polígono de control {c0 = c[u1,u1], c1 = c[u1,u2], c2 = c[u2,u2]}.
Por tanto, lo que hemos hecho ha sido generalizar el algoritmo de de Casteljau, mediante la introducción de dos nudos auxiliares. Para que todos los sumandos sean positivos en la parametrización, esta estará definida en el intervalo [u1,u2]. El efecto de esta generalización es acortar la curva de Bézier que correspondería al polígono, lo que nos servirá para unirla a otros tramos de curvas polinómicas.
Resumiendo, los pasos seguidos en el algoritmo han sido:

r = 0)
    c[u0,u1], c[u1,u2], c[u2,u3]
r = 1)
    c[u1,u], c[u,u2]
r = 2)
    c[u,u]  .
(15)

El polígono B-spline para la parábola estará formado por los vértices {d0: = c[u0,u1],d1: = c[u1,u2],d2: = c[u2,u3]}.
Este es el algoritmo de de Boor para una curva parabólica de un único tramo. El algoritmo se generaliza sin dificultad a curvas de cualquier grado, n, y un solo tramo. El polígono estará formado por n+1 vértices, como corresponde a una curva polinómica de grado n, {d0,...,dn}, donde di = c[ui,...,ui+n-1]. La sucesión de nudos estará formada por 2n valores del parámetro, {u0,...,u2n-1}. 
Finalmente el algoritmo de de Boor consiste en la aplicación reiterada del algoritmo de de Casteljau,
d1)i(u)
: =
c[ui+1,...,ui+n-1,u]  ,      i = 0,...,n-1  ,
=
ui+n-u

ui+n-ui
di+u-ui

ui+n-ui
di+1  ,
dr)i(u)
: =
c[ui+r,...,ui+n-1,u < r > ]  , i = 0,...,n-r  , r = 1,...,n  ,
=
ui+n-u

ui+n-ui+r-1
dr-1)i(u)+u-ui+r-1

ui+n-ui+r-1
dr-1)i+1(u)  ,
dn)0(u)
: =
c[u < n > ] =un-u

un-un-1
dn-1)0(u)+u-un-1

un-un-1
dn-1)1(u)  .
(16)


Por supuesto, c(u) = dn)0(u). La parametrización está definida en el intervalo final, [un-1,un]. 






Estrategia hilo-grama:



No hay comentarios.:

Publicar un comentario

Unidad 5: Introducción a la animación por computadora

Introducción a la animación por computadora 5.1 Historia, evolución y aplicación de la graficación por computadora. 1919-1990 Cr...