PDF de programación - Tema II - Transformaciones lineales en 3D

Imágen de pdf Tema II - Transformaciones lineales en 3D

Tema II - Transformaciones lineales en 3Dgráfica de visualizaciones

Publicado el 13 de Junio del 2018
46 visualizaciones desde el 13 de Junio del 2018. Una media de 7 por semana
1,3 MB
28 paginas
Creado hace 9a (28/09/2009)
Tema II
Transformaciones lineales
en 3D



Ricardo Ramos

Colaboradores:



Luis Jiménez de la Fuente, Alberto Gómez Vicente, Jesús Moisés Peláez Navarro,
Emilio González González, Ignacio Coloma González


Antes de comenzar a estudiar el modelado o los métodos de renderizado conviene repasar algu-
nos aspectos fundamentales de los espacios cartesianos tridimensionales, como por ejemplo las
trasformaciones lineales, pues con frecuencia aparecen a lo largo del temario. Para entender
bien la materia que ahora veremos sería interesante desempolvar los conceptos elementales del
álgebra vectorial y matricial

1.1 Aspectos generales
Antes de comenzar el estudio de las trasformaciones lineales en el espacio
tridimensional, se han de repasar algunos conceptos básicos en este campo.
1.1.1 Sistemas de referencia
Para la visualización de los objetos, éstos han de quedar ubicados en un sis-
tema universal de referencia (SUR), en el cual el eje Z, p. ej., puede te-
ner su origen en el plano Z− (orientación derecha), por lo que se dirige hacia
el observador (Figura 1-a), o bien tener orientación izquierda (Figura 1-b).
Todas las coordenadas de los distintos objetos han de estar dadas en uno de
estos sistemas de referencia.

Figura 1: Sistemas de referencia con orientación diferente



Tema II: Transformaciones lineales en 3D − 2

1.1.2 Transformaciones lineales y matrices
La variación de la posición y/o el tamaño de los objetos, con respecto a los
sistemas de referencia, se hace mediante transformaciones lineales. Las
transformaciones lineales que veremos serán las siguientes: traslación,
cambio de escala, giro, y reflexión.

La Informática Gráfica suele utilizar la notación matricial para descri-
bir las transformaciones lineales de los objetos. La convención más emplea-
da es que el punto (vértice) que se quiere transformar, se exprese mediante
un vector horizontal, multiplicado por la matriz de transformación. Por
ejemplo, en la expresión (x’, y’) = (x, y)·M, la matriz correspondiente a la
transformación lineal estaría indicada por M; el punto inicial (antes de la
transformación) sería el (x, y), y el resultado (o sea, la ubicación del punto en
el sistema de referencia después de la transformación lineal) sería el (x’, y’).
Dado que el estudio de las transformaciones lineales sobre modelos po-
liédricos es más intuitivo, en adelante supondremos que los objetos (mode-
los) son de este tipo. Así, si un poliedro (objeto) tiene n vértices, para trasla-
dar, girar, etc. un objeto, se deberá aplicar la misma transformación lineal a
los n vértices del poliedro. En general, se aplicará la transformación a todos
los puntos significativos de los objetos.
1.1.3 Sistemas homogéneos
Según lo anterior, siendo V = (x, y) el vector de un punto inicial en el SUR-
2D, T =
el vector de translación, y V’ = (x’, y’) las coordenadas del
punto resultante, ocurre que la traslación del punto se ha de realizar calcu-
lando

)

(

t

t

,

y

x

V’ = V + T,

ya que (x’, y’) = (x, y) +
manera de operar es extensible a cualquier dimensión.

, o lo que es igual, x’ = x + tx, e y’ = y + ty. Esta

)

(

t

t

,

y

x

Por otro lado, si E y G fuesen las matrices de escalado y giro, respecti-

vamente, ocurriría que

V’ = V·E y V’ = V·G

Vemos entonces que las traslaciones lineales de los puntos en el espa-
cio se efectúan sumando, mientras que los giros y los cambios de escala se
consiguen multiplicando. La heterogeneidad de los operadores supone un
problema a la hora de generalizar los procesos de las transformaciones, por
lo que para evitarlo, normalmente se utilizan sistemas [de referencia]
homogéneos. Básicamente, un sistema de coordenadas homogéneo es el
resultante de añadir una dimensión extra a un sistema de referencia dado.
Así, en el caso anterior, los vectores homogéneos de los puntos inicial y final
estarían dados por

Por comodidad y sencillez, normalmente w = 1.

V = (x, y, w), V’ = (x’, y’, w)

En definitiva, utilizando un sistema homogéneo, las traslaciones linea-



Tema II: Transformaciones lineales en 3D − 3

les de los puntos del plano pueden quedar expresadas como V’ = V · T, si se
utiliza la matriz de traslación (T) apropiada. Así, siendo

T

=

1


0


t


0
1
t



0
0
1







x

y
es fácil comprobar que (x’, y’, 1) = (x, y, 1)·T.
1.1.4 Composición de matrices
La composición de matrices es una de las principales razones para traba-
jar con sistemas homogéneos. Matemáticamente consiste en la multiplica-
ción de las matrices en un orden determinado.

Supongamos que tenemos el punto P = (x, y, z, 1) del espacio tridimen-
sional, que como vemos está expresado en un sistema homogéneo. Al hacer

)
(x',
y'
,z',
1
z",
(x",
y",
1

T
(x,
)z,y,
1
=
)
z',
(x',
y',
1
=



G
)

lo que se consigue es mover primero el vértice P, y luego girarlo. Se puede
llegar a un resultado final idéntico, si multiplicamos el vector P por la ma-
triz resultante de componer T y G (en este orden). Así, siendo M = T·G, se
tiene que

(x",

y",

z",
1

)

=

(x,

)z,y,
1

M⋅



El orden en que se multiplican las matrices es importante ya que por lo

general, el producto de matrices no es conmutativo.

En la composición de matrices pueden intervenir tantos factores (ma-
trices) como se requieran. Así, siendo Mn la matriz compuesta o neta re-
sultante de la composición de las matrices T1, G, T2, y E (o sea, Mn =
T1·G·T2·E), al multiplicar un punto por esta matriz obtendremos el mismo
punto final que hallaríamos multiplicándolo sucesivamente por las matrices
que la componen1.

En 3D, por lo común, la expresión general de una matriz neta (com-

puesta) es de la forma

21

11

a
a
a
31
d

x

22

12

a
a
a
32
d

y

23

13

a
a
a
33
d

z

0
0
0
1



donde la submatriz Aij representa el cambio de escala y rotación neta, y Di
el vector de desplazamiento neto de los puntos. Si en la composición de


1El orden de multiplicación de las matrices en el proceso de composición de la matriz
neta se corresponde directamente con el orden de las diferentes acciones a realizar sobre el
objeto.



Tema II: Transformaciones lineales en 3D − 4

la matriz se incluyen las matrices que gobiernan las proyecciones en pers-
pectiva, el aspecto de la matriz neta sería

11

a
a
a
31
d
siendo Pj el vector de perspectiva.

21

x

22

12

a
a
a
32
d

y

23

13

a
a
a
33
d

z

1

2

p
p
p
3
1



En general, las transformaciones de vectores homogéneos por medio de

este tipo de matrices netas se denominan transformaciones bilineales2.
1.2 Transformaciones lineales tridimensionales
Como ahora veremos, en las transformaciones lineales en el espacio 3D
habitualmente se utilizan sistemas de coordenadas homogéneos, ya que en la
mayoría de los casos es aconsejable la composición matricial.
1.2.1 Traslaciones
La translación de un objeto consiste en moverlo cierta distancia, en una di-
rección determinada.


Figura 2: traslación de un objeto en el espacio

En 3D, el sistema de referencia homogéneo tendrá 4 dimensiones, por

lo que la traslación del punto V = (x, y, z, 1) quedará indicada como

V’ = (x’, y’, z’, 1) = (x, y, z, 1)·T, siendo

T

=

la matriz de

traslación en 3D. (tx, ty, tz) se conoce como el vector de traslación. La expre-
sión anterior es equivalente al sistema de ecuaciones

1


0

0


t


x

0
1
0
t

y

0
0
1
t

z

0
0
0
1









2Resultado de 2 ó más transformaciones lineales sucesivas.



Tema II: Transformaciones lineales en 3D − 5

x
t
x
'
= +
x
y
t
y
'
= +
y
z
t
z
'
= +
z
1 0 1
= +



Como se comentó arriba, para trasladar un objeto poliédrico se ha de
aplicar la matriz T a todos los vértices del objeto. Es importante observar
que al hacer la traslación de un objeto sus proporciones no varían, puesto
que todos los puntos significativos (vértices en el caso de los poliedros) se
mueven la misma distancia, en la misma dirección.

Para realizar la traslación inversa a la efectuada mediante la matriz T,
se ha de aplicar la matriz inversa, es decir, la T-1, que se obtiene cambiando
el signo (multiplicando por −1) el vector de traslación. Por tanto,

0
1
0
t

y
Así, V = (V·T)·T-1, dado que T·T-1 = 1.

1
0
0
t









T

1
=−

x

0
0
1
t


z



0
0
0
1








1.2.2 Cambios de escala en 3D
Dentro de un espacio de referencia los objetos pueden modificar su tamaño
relativo en uno, dos, o los tres ejes. Para ello se ha de aplicar la matriz de
escalado, que viene dada por

S

=

S
x
0
0
0





⎜⎜


0
S
y
0
0

0
0
S
z
0



0
0
0
1





⎟⎟


De esta forma, el cambio de escala del punto V = (x, y, z, 1) en el siste-

ma homogéneo quedará indicado por

V

'

=

x
'(

y

'

z

)1'

=

(

x

y

z

)·1

S
x
0
0
0





⎜⎜


0
S
y
0
0

0
0
S
z
0



0
0
0
1





⎟⎟


Las coordenadas del punto final serán x' = xSx, y' = ySy, z' = zSz



Tema II: Transformaciones lineales en 3D − 6



Figura 3: Cambios de escala uniformes y no uniformes

Cuando Sx = Sy = Sz el cambio de escala es uniforme; en cualquier otro

caso el cambio de escala será no uniforme.

Para obtener el cambio de escala inverso al realizado aplicando la ma-
triz S, basta con multiplicar los puntos finales por la matriz inversa de S, o
sea, por la matriz S-1, que se obtiene al sustituir Sx, Sy, Sz en S por 1/Sx,
1/Sy, 1/Sz, respectivamente. Los cambios de escala no uniformes deforman
los objetos, por lo que pueden resultar interesantes (siempre que se realicen
de manera controlada); por el contrario, el escalado uniforme no deforma los
objetos, por lo que suele emplearse con mayor frecuencia.

Si no se toman precauciones, los cambios de escala, además de suponer
una variación en las proporciones
  • Links de descarga
http://lwp-l.com/pdf11834  

Comentarios de: Tema II - Transformaciones lineales en 3D (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad

Revisar política de publicidad