Está en la página 1de 14

INTRODUCCIÓN:

Animación Computarizada

Hoy en día ignoramos que las matemáticas están implícitas en cualquier aspecto de nuestra vida diaria,
desde que nos levantamos y consultamos la hora del reloj despertador, hasta que nos vamos a dormir y como
estudiantes calculamos las horas que quedan de sueño.

En la ingeniería sin embargo las matemáticas van más allá, puesto que para obtener y utilizar la tecnología,
de debe contar en un principio por estas poderosas herramientas.

Un caso particular y en el cual nos concentraremos será en las animaciones por computadora. Usted se
preguntaría ¿qué tienen que ver las matemáticas con la animación? Y la respuesta es : todo.

Una rama particular de las matemáticas, permite realizar diseños de personajes tridimensionales en un plano
bidimensional y con herramientas de programación hacer que dichos diseños tengan movimiento, y esta rama
es el Álgebra lineal.

Visualización y animación computarizada

La animación computarizada es una ciencia ecléctica que combina de manera singular: matemática, ciencia
de la computación, arte, animación clásica, física, biomecánica y anatomía, por nombrar sólo algunos
campos. Los algoritmos dependen fuertemente en técnicas de computación científica, estadística,
procesamiento de señales, álgebra lineal, teoría de control, y geometría computacional.

Matrices, transformaciones afines en 3D.

Animar objetos en su forma más básica consistirá en multiplicar matrices, y algo muy importante es el orden
en el que realicemos estas multiplicaciones. Si no realizamos las multiplicaciones en el orden correcto,
nuestro modelo 3D sin duda se moverá de forma cuanto menos "rara" o inesperada. Este problema se
soluciona recordando el orden que hay que aplicar, que siempre va a ser el mismo, partiendo de la matriz
identidad:
Escalar el modelo
Rotar el modelo sobre su propio eje
Rotar el modelo sobre un punto externo
Trasladar el modelo

Toda la geometría que se despliega en las aplicaciones Open GL está basada en los conceptos de Matrices y
Vectores y las operaciones aritméticas aplicables a estas estructuras.
En Open GL existen básicamente tres matrices principales:
Una matriz de proyección llamada GL_PROJECTION, la cual nos permite determinar la perspectiva que
usaremos para observar la escena generada, así como el tipo de proyección a usar (esto tiene que ver mucho
con cuestiones de óptica y de geometría, y abordaremos este tema en otra ocasión más específicamente, ya
que es bastante extenso y complejo). Esta matriz tiene una gran relación con otro concepto también muy
interesante llamado clipping, que consiste en recortar u ocultar todo aquello que
“está pero no se ve”, es decir lo que queda fuera del foco de nuestra cámara o nuestro campo visual activo,
este es un proceso que se hace automáticamente una vez, habiendo inicializado pertinentemente esta matriz.
Una matriz de Modelado llamada GL_MODELVIEW, donde ésta es la matriz que usaremos para aplicar a
nuestra escena operaciones de rotación, traslación o escalamiento, o bien para manipular la posición y
orientación de la cámara, para obtener así las animaciones. La figura 2 muestra algunos ejemplos de matrices
de transformación lineal para el caso de sistemas de 3 dimensiones

Y una última matriz para el manejo de Texturas llamada GL_TEXTURE, sobre la cual también podemos
aplicar las transformaciones lineales de rotación, traslación y escalamiento para manipular las texturas a
utilizar en las figuras de nuestra escena, cuando estemos más avanzados explicaremos mas a detalle el
manejo de texturas en nuestros programas

Vectores de diversos tipos

Los vectores son un conjunto de valores que nos permiten definir dentro de nuestra escena, desde los
vértices de las figuras, hasta los colores, los materiales y las luces, entre otras muchas cosas. Existen
básicamente dos formas de trabajar con vectores en Open GL, con sus elementos como variables
independientes, o manejarlos como una estructura de datos. Cuando trabajamos sus elementos de forma
independiente cada vector es descompuesto en 3 ó 4 valores según sea el caso. Y cuando se maneja como
una estructura estos valores están contenidos en una estructura de datos que bien puede ser un arreglo o un
registro.
A continuación se muestra una ligera explicación de la creación de un conocido personaje de la saga Star
Wars utilizando herramientas del álgebra lineal y un programa llamado
MAPLE. Maple da un toque “fuera de este mundo” a la enseñanza
matemática. Software matemático utilizado para digitalizar al personaje
de Yoda en la guerra de las galaxias.

Un colaborador de confianza en este proyecto es Maple, la herramienta


computacional líder a nivel mundial, que ofrece frescura y profundidad
para tratar todo tipo de matemáticas.

¿Cómo se utilizó Maple?


Yoda tiene un físico que está literalmente construido por
álgebra lineal. Para que un ordenador maneje a este
Maestro Jedi, en contraposición a un titiritero, el personaje
debe crearse digitalmente, a través de un mallado, o
teselación, como puede verse en la imagen.

El modelo del mallado se define por dos tipos de


información: la localización de cada vértice, y las
conexiones entre los vértices que determinan cada cara.
Cuantos más vértices, mejor es la imagen. Las herramientas
de graficación 3D de Maple toman ésta información y
construyen la imagen de Yoda.

Las rutinas de álgebra lineal de Maple pueden, entonces,


ser utilizadas para mover a Yoda.

Con la información de los vértices almacenada en una


matriz, la multiplicación de matrices puede ser utilizada para
modificar el modelo, resultando en una nueva imagen 3D. Por ejemplo, al multiplicarla por una matriz de
rotación, rotará la imagen por una cantidad específica. Las formidables rutinas numéricas de álgebra lineal en
Maple, hacen que estas operaciones sean factibles, aun cuando se tenga miles de vértices.

Las potentes capacidades interactivas de los gráficos 3D en Maple añaden más dimensiones a la exploración.
Los usuarios pueden rotar, escalar o trasladar la imagen interactivamente, pueden tratar diferentes modelos
de iluminación, niveles de brillo y transparencia para hacer tu modelo personalizado de Yoda.

La Digitalización de Yoda

Yoda apareció por primera vez en la saga de Star Wars en 1980, The Empire Strikes Back. En esta película,
Yoda estaba representado por un muñeco, su voz y
movimientos estaban controlados por Frank Oz. Más
recientemente el personaje fue producido mediante una
animación computarizada, empleando conceptos matemáticos
pertenecientes a las ramas del álgebra lineal, cálculo,
ecuaciones diferenciales y análisis numérico.

Cuando se desea realizar una proyección tridimensional de alguna figura, se debe de considerar la
pantalla de proyección como el plano bidimensional (x,y); y en base a este colocar un sistema de
coordenadas tridimenssional (x,y,z) ,cuya orientación coincida con la del primero; es decir, con z
dirigido hacia afuera de la pantalla.
Debido a que una figura está formada de diversos segmentos de recta unidos enntre sí, es
necesario conocer las coordenadas de dichas uniones que se almacenan en la memoria del
sistema.

Estas mismas coordenadas serán quienes generen nuesttra matriz de la forma

Esta matriz puede transformarse en otras dependiendo de la vista que quisiéramos. Debemos
notar que los segmentos de recta que conectan los diferentes puntos se mueven con los puntos
cuando estos últimos son transformados. De esta forma, cada vista tiene su matriz única.
Existen diversos tipos de transformaciones:

Escalamiento

Como su nombre lo dice, es el tipo de transformación que se considera mediante un


esalonamiento de la vista en direcciones x,y,z por factores α,β,γ; de modo que si

Ejemplo.

Definimos una matriz diagonal de 3x3

Entonces si un punto Pi en la vista original está representado por él vector columna

El punto transformado Pi’ está representado por el vector columna

Usando la matriz de coordenadas P, que contiene las coordenadas de todos los n puntos de la
vista original como sus columnas, es posible transformar estos n puntos simultáneamente para
producir la matriz coordenadas P’ de la vista escalada como sigue:
La nueva matriz de coordenadas se puede introducir entonces en el sistema de despliegue de
video para producir la nueva vista del objeto. Como un ejemplo, la vista 2 es la vista 1 escalada al
hacer =1.8, 0.5 y =3.0. Advertir que el escalamiento =3.0 a lo largo del eje z no es visible en
la vista 2, ya que lo único que se ve es la proyección del objeto sobre el plano xy.

Traslación.

Se considera ahora la transformación de trasladar o desplazar un objeto a una nueva posición en la


pantalla. Con la figura 11.11.3, suponer que se desea cambiar una vista existente de tal modo que
cada punto Pi con coordenadas (xi,yi,zi) se mueva a un nuevo punto Pi’ con coordenadas (xi + x0,yi
+ y0,zi + z0). El vector

Se denomina el vector de traslación de la transformación. Definiendo una matriz T3 x n como

Es posible trasladar los n puntos de la vista determinada por la matriz de coordenadas P por suma
de matrices mediante la ecuación

P’ = P + T

La matriz de coordenadas P’ especifica entonces las nuevas coordenadas de los n puntos. Por
ejemplo, si se quiere trasladar la vista 1 de acuerdo con el vector de traslación.
El resultado es la vista 3. Advertir, de nueva cuenta, que la traslación z0=1.7 a lo largo del eje z no
aparece explícitamente en la vista 3.

Rotación

Un tipo más complicado de transformación es la rotación de una vista alrededor de uno de los tres
ejes de coordenadas. Se empieza con una rotación alrededor del eje z (el eje perpendicular a la
pantalla) a través del ángulo t. Dado un punto P, en la vista original con coordenadas (xi, yi, zi) se θ
quiere calcular las nuevas coordenadas (xi’, yi’, zi’) del punto rotado Pi’. De acuerdo con la
siguiente figura podemos deducir lo siguiente:

Xi’= cos ( )= cos cos – sen sen = xi cos – yi sen

yi’= cos ( + ) = cos cos – sen sen = xi cos – yi sen

zi’= zi

Estas ecuaciones se pueden escribir de forma matricial como:


Si se hace que R denote una matriz de 3 x 3 en esta ecuación, todos los n puntos se pueden rotar
por medio del producto matricial.

P’ = RP

Para producir la matriz de coordenadas P’ de la vista rotada.

Las rotaciones alrededor de los ejes x y se pueden llevar a cabo de manera análoga, y las matrices
de rotación resultantes se dan en las vistas 4, 5, 6. Estas tres nuevas vistas de la pirámide truncada
corresponden a rotaciones de a vista 1 alrededor de los ejes x, y, z respectivamente, cada una de
ellas a través de un ángulo de 90°.
Las rotaciones alrededor de los tres ejes de coordenadas se pueden combinar para obtener vistas
oblicuas de un objeto. Por ejemplo, la vista 7 es la vista 1 rotada 30° alrededor del eje x, después -
70° alrededor del eje y, por último, -27° alrededor del eje z. matemáticamente, estas tres
rotaciones sucesivas se pueden sintetizar en la ecuación de la trasformación P’ = RP, donde R es el
producto de las tres matrices de rotación individuales:

En el orden:
Ejemplos:

Figura 1

1) La figura 1 muestra un cuadrado con vértices (0, 0,0),


(1, 0,0), (1, 1,0) y (0, 1,0)

a) ¿Cuál es la matriz de coordenadas de la figura 1?

b) ¿Cuál es la matriz de coordenadas de la figura 1


después de escalarla por un factor de 1½ en la
dirección x y de ½ en la dirección y? Hacer un diagrama de la vista escalada.

c) ¿Cuál es la matriz de coordenadas de la figura 1 después de trasladarla por el siguiente vector?

Dibujar un diagrama de la vista trasladada.

d) ¿Cuál es la matriz de coordenadas de la figura 1 después de rotarla a través de un ángulo de -


30º alrededor del eje z? Dibujar un diagrama de la vista rotada.

a) b)

c)
d)

2)

a) ¿Cuáles son las coordenadas de los cuatro vértices del cuadrado con el deslizamiento cortante
de la figura 2?

Figura 2

b) La matriz determina un deslizamiento cortante den la dirección y con factor 0.6

con respecto al a coordenada x. Trazar una vista del cuadrado de la figura 1 después de someterlo
al deslizamiento cortante descrito y encontrar las nuevas coordenadas de los cuatro vértices

a) (0,0,0),(1,0,0),(1½,1,0) y (½,1,0)

b) (0,0,0),(1,6,0),(1,1,6,0) , (0,1,0)
3) a) La reflexión respecto al plano xz se define como la transformación que lleva un punto (x i, yi,
zi) al punto (xi,-yi, zi). Si P y P’ son las matrices de coordenadas de una vista y su reflexión respecto
al plano xz, respectivamente, encontrar una matriz M tal que P’=MP.

b) De manera análoga al inciso anterior, definir la reflexión respecto al plano yz y construir la


matriz de transformación correspondiente. Dibujar un diagrama de la figura 0 reflejada respecto al
plano xz.

c) De manera análoga al inciso a) definir la reflexión respecto al plano xy y construir la matriz de


transformación correspondiente. Dibujar un diagrama de la figura 0 reflejada respecto al plano xy

[1 0 0] [-1 0 0]

a) [0 -1 0] b) [0 1 0]

[0 0 1] [0 0 0]

[1 0 0]

c) [0 1 0]

[0 0 -1]

4) La figura 3 es la figura 1 sujeta a las cinco transformaciones siguientes:

1.- Escalamiento por un factor de ½ en la dirección x, 2 en la dirección y, y ⅓ en la dirección z.

2.- Traslación de ½ unidad en la dirección x.


3.- Rotación de 20º alrededor del eje x.

4.- Rotación de -45º alrededor del eje y.

5.- Rotación de 90º alrededor del eje z.

Construir las 5 matrices M1, M2, M3, M4, M5 asociadas con estas 5 transformaciones.

[½ 0 0]

M1= [0 2 0]

[0 0 ⅓]

[½ ½ .... ½]

M2= [0 0 ... 0]

[0 0 ... 0]

[1 0 0 ]

M3= [0 cos20º -sen20º]

[0 sen20º cos20º]

[Cos (-45º) 0 sen (-45º)]

M4= [ 0 1 0 ]

[-sen (-45º) 0 cos (35º)]


[0 -1 0]

M5= [1 0 0]

[0 0 1]

P’=M5 M4 M3(M1P+ M2)


Arroyo Valdez Ernesto

Perdomo Perdomo Fragoso Daniek Alejandro

Tobón Vázquez Lizzouli

También podría gustarte