Animación de Superficies Bsplines por el Método del Desplazamiento
Juan Valentín Mendoza Mogollón
Departamento de Matemáticas, Universidad Nacional de Piura, Piura, Perú, 2004 juan_valentin_m@hotmail.com
unp_math@yahoo.com Resumen.
En este trabajo se construyen los comandos en Mathematica 5.0 que permiten graficar una superficie bspline producto tensorial y además de visualizar su desplazamiento sobre una curva dada por el usuario. La animación por el método del desplazamiento es un tipo de movimiento que utiliza el triedro móvil de Frenet-Serret para trasladar una superficie de un sistema de referencia a otro centrado en un punto cualquiera de la curva dada. Lo que da como resultado una animación “natural” sobre la curva.
1.- Transformación de un punto del sistema Oxyz al O´x´y´z´.
La traslación de un punto del sistema Oxyz al sistema O´x´y´z´ que está centrado en P y tiene como direcciones ortonormales a los vectores T, N y B para los ejes x´, y´ y z´, respectivamente, se realiza descomponiendo el punto X del sistema Oxyz y trasladando estos resultados al sistema O´x´y´z´., pero con T, N y B, los cuales constituyen la base de O´x´y´z´.
En términos matemáticos se expresa:
i X
Xx = . , componente del punto X en el eje x.
j X
Xy = . , componente del punto X en el eje y.
z X
Xz = . , componente del punto X en el eje z.
Y por tanto, la transformación asociada es:
N X B X T X
P ( x) ( y) ( z)
*= + + +
X (1.1)
T[X] = X*
z
z´
y
x
y´
x´O
X
X*
O´=P
T
B N
2. EL método del desplazamiento
2.1. El Triedro Móvil de Frenet-Serret.
Definición.- Sea una curva regular definida en el abierto I, se definen el Triedro Móvil de Frenet-Serret como:
( )t :I→R3, α
´()
) ) ´(
( t
t t
T α
= α
)
´´(
)
´(
)
´´(
) ) ´(
( t x t
t x t t
B α α
α
= α
) ( ) ( )
(t B t xT t
N =
La terna T(t),N(t) y B(t) constituye un Sistema de Referencia en el punto α(t), donde a los vectores T y son llamados Vector Tangente, Normal y Binormal, respectivamente.
) t ( N ),
(t B(t)
Teorema 1.- Sea una curva regular definida en el abierto I, entonces su Sistema de Referencia de Frenet-Serret cumple lo siguiente:
( )t :I→R3, α
) ( ) ( ) ( )
´(
) ( ) ( ) ( ) ( ) ( ) ( )
´(
) ( ) ( ) ( )
´(
t N t t v t B
t B t t v t T t k t v t N
t N t k t v t T
τ
τ
−
=
+
−
=
=
donde 3
)
´(
)
´´(
) ) ´(
( t
t x t t
k α
α
= α es la Curvatura de la curva α(t) y 2
)
´´(
)
´(
)
´´´(
)
´´(
).
) ´(
( t x t
t x t t t
α α
α α
τ = α es la
Torsión de la curva α(t).
2.2. Traslación de Puntos de Control.
Consiste en trasladar una superficie Bspline BPT desplazando el sistema coordenado tridimensional a cada punto Pi de una curva previamente dada, en las direcciones de su Triedro Móvil de Frenet-Serret, es decir, el eje x en la dirección del vector Tangente, el eje y en la dirección del vector Normal y el eje z en la dirección del vector Binormal, pero solamente trasladando los puntos de control que definen la superficie.
Sea la superficie BPTS:
donde en el conjunto
están los puntos de control y la curva sobre la cual se desplazará es
; además sea N la cantidad de subdivisiones del intervalo
[ ]
:∑∑
= == m
i n j
p j i j
i N u v
d v
u N
1 1
,
, ( , )
) , (
n j m i
dij} , 1, , 1,
{ = =
( )t ∈R3,∀t∈
[ ]
a,bα a,b
N a h b−
= y k
N a a b k h a
tk ( )
* −
+
= +
= , ∀k=0,...,N
En la curva α(t), para cada tk tenemos los vectores del triedro móvil de Frenet- Serret: el vector Tangente , el vector Normal y el vector Binormal los cuales forman un sistema ortonormal de vectores en el punto
) (tk
T N(tk) B(tk)
) (tk
α , por ello se puede trasladar el sistema coordenado Oxyz a el sistema T, N y B centrado en el punto α(tk), por la fórmulas (1.1); las fórmulas de trasformación a este sistema TNB del conjunto de puntos
están dadas por:
} {dij
( )k ij ( )k ij ( )k ij ( )k
ijk t d i T t d j Bt d k N t
d =α +( .→)→ +( .→)→ +( .→)→
Este nuevo conjunto de puntos
{ }
dijk genera una nueva superficie NTPBS:
∑∑
cuya imagen en Ñ= =
= m
i n j
p j k i
k u v dijN u v
N
1 1
, ( , ) )
, (
) (tk
3 es la misma que la superficie pero centrada en el punto α .
Haciendo los pasos anteriores para cada tk se genera una familia de superficies en cuadros que mostrados sucesivamente dan la idea de movimiento de a través de la curva
) (t α .
La ventaja de usar el Método de Desplazamiento y el Triedro Móvil como sistema de referencia para trasladar puntos se debe a que este nos ofrece un cambio de imagen
“natural” de las diferentes posiciones de la figura sobre la curva, pues el Triedro Móvil determina unívocamente una curva en el espacio y está ligado al comportamiento de esta.
Podemos decir, por consiguiente, que la superficie se mueve sobre la curva
“efectivamente” y no sigue un movimiento forzado.
) (tk α
) (tk+1
α α(tk+2)
{ }
dijk{ }
dijk+1{ }
dijk+2Ejemplo: En el software Mathematica se ha creado el Package SBPTDesplazamiento, que genera curvas y superficies Bspline en el plano y en el espacio, además de superficies de revolución Bspline. Tambien se ha implementado los comandos que desplegan la animación de una superficie Bpline producto tensorial por el método del desplazamiento desarrollado en este trabajo.
Como ilustración mostraremos la animación por el metodo del desplazamiento de una curva Bspline en el plano. El comando que realiza este procedimiento es Animacion2DCurva:
En este comando nodo1 representa el vector nodal de la curva bspline, vectorcontrol8, los puntos de control, el grado es 2 y la curva sobre la cual se desplaza es η
[ ]
t :Animacion2DCurva[nodo1,vectorcontrol8,2,η[t],{0,24},20,PlotRange→{ {-2,24},{-4,8}},AspectRatio→Automatic]
5 10 15 20
-4 -2 2 4 6 8
5 10 15 20
-4 -2 2 4 6 8
5 10 15 20
-4 -2 2 4 6 8
5 10 15 20
-4 -2 2 4 6 8
5 10 15 20
-4 -2 2 4 6 8
5 10 15 20
-4 -2 2 4 6 8
5 10 15 20
-4 -2 2 4 6 8
5 10 15 20
-4 -2 2 4 6 8
5 10 15 20
-4 -2 2 4 6 8
5 10 15 20
-4 -2 2 4 6 8
5 10 15 20
-4 -2 2 4 6 8
5 10 15 20
-4 -2 2 4 6 8
5 10 15 20
-4 -2 2 4 6 8
5 10 15 20
-4 -2 2 4 6 8
5 10 15 20
-4 -2 2 4 6 8
5 10 15 20
-4 -2 2 4 6 8
5 10 15 20
-4 -2 2 4 6 8
5 10 15 20
-4 -2 2 4 6 8
5 10 15 20
-4 -2 2 4 6 8
5 10 15 20
-4 -2 2 4 6 8
Para la superficie Tiburón que se muestra a continuación, se ha desarrollado la animación sobre una curva cualquiera:
Se debe introducir previamente una función curvas[t] que contiene a la curva sobre la cual se realizará el desplazamiento. La animación de esta superficie se genera con el
comando Animacion3DBPTCurva, cuya sintaxis es
Animacion3DBPTCurva[vectorcontrol, l, k, curvas[t], {tiempoinicial, tiempofinal}, frame, Opts], donde vectorcontrol
contiene los puntos de control de la superficie a generar, k y l son los grados de esta superficie producto tensorial, curvas[t] es la curva sobre la que se desplaza en un intervalo {tiempoinicial, tiempofinal}, y una presentación de frame cuadros :
Animacion3DBPTCurva[tiburon,1,1,curvas[t],{0,8},10,PlotRange→All, Boxed→False,Axes→False,ViewPoint->{1.001, -3.137,0.779}]
En este mismo paquete se han implementado comandos que generan superficies de revolución como los siguientes:
También en este trabajo se han generado la siguiente superficie que representa un rostro, que se puede animar por los métodos introducidos aquí: