2
4
Fundamentos
Matemáticos
E
n este capítulo estudiaremos algunos conceptos teóricos básicos para el trabajo con objetos 3D en el ámbito de la Realidad
Aumentada. En concreto veremos cómo transformar posición,
rotación y tamaño de objetos empleando transformaciones geométricas en su representación matricial. Igualmente, y por su importancia
en el ámbito de la realidad aumentadaestudiaremos en detalle la proyección en perspectiva, por ser ésta la que mejor se ajusta a dispositivos de vídeo reales.
En este capítulo comenzaremos a estudiar las transformaciones afines más básicas que serán necesarias para el desarrollo de aplicaciones de Realidad Aumentada. Las transformaciones son herramientas
imprescindibles para cualquier aplicación que manipule geometría o,
en general,objetos descritos en el espacio 3D. La mayoría de APIs que
trabajan con gráficos 3D implementan funciones auxiliares para trabajar con matrices.
Para introducir los conceptos generales asociados a las transformaciones, comenzaremos con una discusión sobre las operaciones en
2D para pasar a la notación matricial 2D y, posteriormente, a la generalización tridimensional empleando coordenadas homogeneas.35
[36]
CAPÍTULO 4. FUNDAMENTOS MATEMÁTICOS
4.1. Transformaciones Geométricas
En la representación de gráficos 3D es necesario contar con herramientas para la transformación de los objetos básicos que compondrán la escena. A menudo, estas primitivas son conjuntos de triángulos que definen mallas poligonales. Las operaciones que se aplican a
estos triángulos para cambiar su posición, orientacióny tamaño se denominan transformaciones geométricas. En general podemos decir
que una transformación toma como entrada elementos como vértices
y vectores y los convierte de alguna manera.
La transformación básica bidimensional más sencilla es la traslación. Se realiza la traslación de un punto mediante la suma de un
vector de desplazamiento a las coordenadas iniciales del punto, para
obtener unanueva posición de coordenadas. Si aplicamos esta traslación a todos los puntos del objeto, estaríamos desplazando ese objeto
de una posición a otra. De este modo, podemos definir la traslación
como la suma de un vector libre de traslación t a un punto original p
para obtener el punto trasladado p′ (ver Figura 4.1). Podemos expresar
la operación anterior como:
p′x = px + tx
p′y = py + ty
(4.1)Figura 4.1: Arriba. Traslación de un punto p a p′ empleando el vector t. Abajo. Es
posible trasladar un objeto
poligonal completo aplicando
la traslación a todos sus vértices.
De igual modo podemos expresar una rotación de un punto p =
(x, y) a una nueva posición rotando un ángulo θ respecto del origen
de coordenadas, especificando el eje de rotación y un ángulo θ. Las
coordenadas iniciales delpunto se pueden expresar como (ver Figura
4.2):
px = d cosα
py = d senα
(4.2)
Siendo d la distancia entre el punto y el origen del sistema de coordenadas. Así, usando identidades trigonométricas se pueden expresar
las coordenadas transformadas como la suma de los ángulos del punto
original α y el que queremos rotar θ como:
p′x = d cos(α + θ) = d cosα cosθ − d senα senθ
p′y = d sen(α + θ) = d cosαsenθ − d senα cosθ
0mm
Figura 4.2: Rotación del
punto p un ángulo θ respecto
del origen de coordenadas.
Que sustituyendo en la ecuación 4.2, obtenemos:
p′x = px cosθ − py senθ
p′y = px sinθ − py cosθ
(4.3)
De forma similar, un cambio de escala de un objeto bidimensional
puede llevarse a cabo multiplicando las componentes x, y del objeto
por el factor de escala Sx , Sy en cada eje. Así, como semuestra en la
Figura 4.3 un cambio de escala se puede expresar como:
p′x = px Sx
p′y = py Sy
(4.4)
4.1. Transformaciones Geométricas
[37]
Cuando queremos cambiar la localización de un objeto, habitualmente necesitamos especificar una combinación de traslaciones y
rotaciones en el mismo (por ejemplo, cuando cogemos el teléfono móvil de encima de la mesa y nos lo guardamos en el bolsillo,...
Regístrate para leer el documento completo.