Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Afines / Perspectiva
Visin Artificial
Andrea Rueda
35
25
x
30 45
Transformaciones
Traslacin: movimiento traslacin de (-15,5).
y
40
30
x
15 30
Transformaciones
Traslacin 2D:
Se aaden distancias de traslacin a las
coordenadas originales.
(x , y) (x ' , y ' )
x '= x +t x
y' = y+ty
Transformaciones
Traslacin 2D:
Notacin matricial (coordenadas homogneas).
(x , y) (x ' , y ' )
P ' =T (t x , t y )P
[ ][ ][ ]
x' 1 0 tx x
y' = 0 1 t y y
1 0 0 1 1
Transformaciones
Traslacin inversa 2D:
Negacin de las distancias de traslacin.
(x , y) (x ' , y ' )
1
P =T (t x ,t y )P '
[][ ][ ]
x 1 0 t x x '
y = 0 1 t y y '
1 0 0 1 1
Transformaciones
Traslacin 3D:
[ ][ ][ ]
x' 1 0 0 tx x
y' = 0 1 0 ty y
z' 0 0 1 tz z
1 0 0 0 1 1
Transformaciones
Escala:
Altera el tamao del objeto.
Se multiplican las posiciones del objeto por
factores de escala en cada eje de coordenadas.
Valores inferiores a 1 reducen el tamao.
Valores superiores a 1 aumentan el tamao.
Mismos valores en cada eje escala uniforme.
Transformaciones
Escala: posicin original.
35
25
x
30 45
Transformaciones
Escala: escala usando factores (2/3, 6/5).
y
42
30
x
20 30
Transformaciones
Escala 2D:
Factores de escala diferenciales, uno en la
direccin x, otro en la direccin y.
(x , y) (x ' , y ' )
x '= xs x
y ' = ys y
Transformaciones
Escala 2D:
Notacin matricial (coordenadas homogneas).
(x , y) (x ' , y ' )
P ' = S (s x , s y )P
[ ][ ][ ]
x' sx 0 0 x
y' = 0 sy 0 y
1 0 0 1 1
Transformaciones
Escala inversa 2D:
Factores de escala recprocos.
(x , y) (x ' , y ' )
1
P =S (s x , s y )P '
[][ ][ ]
x 1/ s x 0 0 x'
y = 0 1/ s y 0 y '
1 0 0 1 1
Transformaciones
Escala 3D:
[ ][ ][ ]
x' sx 0 0 0 x
y' = 0 sy 0 0 y
z' 0 0 sz 0 z
1 0 0 0 1 1
Transformaciones
Rotacin:
Girar el objeto una cantidad especfica dada
por un ngulo especificado sobre un eje.
Eje de rotacin perpendicular al plano, dado
por una coordenada llamada punto de rotacin.
ngulos positivos sentido antihorario.
ngulos negativos sentido horario.
Transformaciones
Rotacin: posicin original.
15
x
30 45
Transformaciones
Rotacin: rotacin de 45 alrededor de (20,5).
5 45
x
20
Transformaciones
Rotacin 2D:
De un punto aplicando un ngulo sobre el
origen de coordenadas.
(x , y) (x ' , y ' )
x '= x cos y sin
y ' = x sin + y cos
Transformaciones
Rotacin 2D:
Notacin matricial (coordenadas homogneas).
(x , y) (x ' , y ' )
P ' = R( )P
[ ][ ][ ]
x' cos sin 0 x
y ' = sin cos 0 y
1 0 0 1 1
Transformaciones
Rotacin inversa 2D:
ngulo de rotacin negativo.
(x , y) (x ' , y ' )
1
P =R ()P '
[][ ][ ]
x cos sin 0 x '
y = sin cos 0 y '
1 0 0 1 1
Transformaciones
Rotacin 3D:
Rotaciones paralelas a los ejes cartesianos.
Rotacin del eje z (exactamente igual a 2D).
Rotacin del eje x.
Rotacin del eje y.
y y y
x x x
z z z
Transformaciones
Rotacin 3D:
Rotacin del eje z.
(x , y , z ) (x ' , y ' , z ' )
P ' = R z ( )P
[ ][ ][ ]
x' cos sin 0 0 x
y ' = sin cos 0 0 y
z' 0 0 1 0 z
1 0 0 0 1 1
Transformaciones
Rotacin 3D:
Rotacin del eje x (permutacin x y z x).
(x , y , z ) (x ' , y ' , z ' )
P ' = R x ()P
[ ][ ][ ]
x' 1 0 0 0 x
y ' = 0 cos sin 0 y
z' 0 sin cos 0 z
1 0 0 0 1 1
Transformaciones
Rotacin 3D:
Rotacin del eje y (permutacin x y z x).
(x , y , z ) (x ' , y ' , z ' )
P ' = R y ()P
[ ][ ][ ]
x' cos 0 sin 0 x
y' = 0 1 0 0 y
z' sin 0 cos 0 z
1 0 0 0 1 1
Transformaciones
Ejercicio 1:
Escribir las matrices de transformacin que
permiten:
1. Aplicar una traslacin 3D de (-15, 4, 19).
2. Aplicar una escalamiento 2D de (0.5, 1.8).
3. Aplicar una rotacin 3D alrededor del eje y
de 45.
Transformaciones
Ejercicio 1:
[ ]
2. 0.5 0 0
0 1.8 0
[ ]
1. 1 0 0 15 0 0 1
0 1 0 4
0 0 1 19
[ ]
0 0 0 1 3. cos 45 0 sin 45 0
0 1 0 0
sin 45 0 cos 45 0
0 0 0 1
Transformaciones
Ejercicio 1:
[ ]
2. 0.5 0 0
0 1.8 0
[ ]
1. 1 0 0 15 0 0 1
0 1 0 4
0 0 1 19
[ ]
0 0 0 1 3. 2 /2
0 2/ 2 0
0 1 0 0
2/2 0 2/ 2 0
0 0 0 1
Transformaciones
Reflexin:
Producir la imagen de un objeto en un espejo.
Escoger un eje de reflexin, y rotar el objeto
180 sobre dicho eje.
Transformaciones
P ' =F xP
x
[ ][
x' 1 0 0 x
y ' = 0 1 0 y
1 0 0 1 1 ][ ]
Transformaciones
P ' =F yP
[][
x' 1 0 0 x
y' = 0 1 0 y
1 0 0 1 1 ][ ] x
Transformaciones
Reflexin 2D relativa al origen de coordenadas:
y
(x , y) (x ' , y ' )
x '=x y ' = y
P ' =F xyP
x
[][
x' 1 0 0 x
y ' = 0 1 0 y
1 0 0 1 1 ][ ]
Transformaciones
Reflexin 3D:
Con respecto a un eje de reflexin: Equivalente a
rotacin de 180 sobre dicho eje (Ejemplo para z).
[ ][ ][ ]
x' cos 180 sin 180 0 0 x
y ' = sin 180 cos 180 0 0 y
z' 0 0 1 0 z
1 0 0 0 1 1
Transformaciones
Reflexin 3D:
Con respecto a un eje de reflexin: Equivalente a
rotacin de 180 sobre dicho eje (Ejemplo para z).
[ ][ ][ ]
x' 1 0 0 0 x
y ' = 0 1 0 0 y
z' 0 0 1 0 z
1 0 0 0 1 1
Transformaciones
Reflexin 3D:
Con respecto a un plano de reflexin: Cambiar el
signo de la coordenada perpendicular (aqu z).
[ ][ ][ ]
x' 1 0 0 0 x
y' = 0 1 0 0 y
z' 0 0 1 0 z
1 0 0 0 1 1
Transformaciones
Inclinacin:
Desplazamiento de cada punto de forma
proporcional a la distancia a una lnea paralela
a la direccin de distorsin.
Modifica o distorsiona una figura, convirtiendo
cuadrados en paralelogramos y crculos en
elipses.
Transformaciones
Inclinacin 2D en x con respecto al eje x:
y
(x , y) (x ' , y ' )
x ' = x+ sh xy y'=y
P ' =H xP x
[][ ][ ]
x' 1 sh x 0 x
y' = 0 1 0 y
1 0 0 1 1 x
Transformaciones
Inclinacin 2D en y con respecto al eje y.
y
(x , y) (x ' , y ' )
x ' =x y ' = y + sh yx
x
P ' =H yP
y
[][ ][ ]
x' 1 0 0 x
y ' = sh y 1 0y
1 0 0 1 1
x
Transformaciones
Inclinacin 3D:
Se aplican a lo largo de un eje, de manera
anloga a la inclinacin 2D.
Ejemplo: inclinacin a lo largo del eje z.
Requiere parmetros de inclinacin shx y shy.
stos alteran las coordenadas x y y
proporcionalmente, mientras que la
coordenada z no cambia.
Transformaciones
Inclinacin 3D:
Ejemplo: inclinacin a lo largo del eje z.
[ ][ ][ ]
x' 1 0 sh x 0 x
y ' = 0 1 sh y 0 y
z' 0 0 1 0 z
1 0 0 0 1 1
Transformaciones
Ejercicio 2:
Escribir las matrices de transformacin que
permiten:
1. Aplicar una reflexin 3D sobre el eje x.
2. Aplicar una reflexin 3D sobre el plano xz.
3. Aplicar una inclinacin 2D con respecto al
eje x de 5.
Transformaciones
Ejercicio 2:
[ ] [ ]
1. 1 0 0 0 2. 1 0 0 0
0 1 0 0 0 1 0 0
0 0 1 0 0 0 1 0
0 0 0 1 0 0 0 1
[ ]
3. 15 0
0 1 0
0 0 1
Transformaciones
Composicin o concatenacin de
transformaciones.
Matriz de transformacin compuesta: producto
de las transformaciones individuales.
P '= M 2M 1P
P '= MP
Transformaciones
Propiedades de la concatenacin de
transformaciones:
- Asociatividad:
M 3M 2M 1=( M 3M 2 )M 1= M 3( M 2M 1)
- Conmutatividad:
M 1M 2 M 2M 1
(x , y) (x ' , y ' )
1
P ' =T STP
[][ ][ ]
x' sx 0 ( s x 1) x f x
y' = 0 s y ( s y 1) y f y
1 0 0 1 1
Transformaciones
Cambio de escala 3D con respecto a cualquier
posicin fija (xf,yf,zf):
Transformaciones
Cambio de escala 3D con respecto a cualquier
posicin fija (xf,yf,zf):
1. Trasladar el punto fijo al origen.
2. Escalar con respecto al origen.
3. Trasladar el punto fijo de vuelta a su posicin
original.
Transformaciones
Cambio de escala 3D con respecto a cualquier
posicin fija (xf,yf,zf):
y y
(xf,yf,zf) (xf,yf,zf)
x x
z z
Posicin original Traslacin
Transformaciones
Cambio de escala 3D con respecto a cualquier
posicin fija (xf,yf,zf):
y y
(xf,yf,zf) (xf,yf,zf)
x x
z z
Escala Traslacin inversa
Transformaciones
Cambio de escala 3D con respecto a cualquier
posicin fija (xf,yf,zf):
[ ][ ][ ]
x' s x 0 0 ( s x 1) x f x
y ' = 0 sy 0 ( s y 1) y f
y
z' 0 0 s z (s z1) z f z
1 0 0 0 1 1
Transformaciones
Rotacin 2D general sobre cualquier punto de
pivote:
Transformaciones
Rotacin 2D general sobre cualquier punto de
pivote:
1. Trasladar el objeto y el punto de pivote de forma
que ste quede sobre el origen de coordenadas.
2. Rotar el objeto sobre el origen.
3. Trasladar el objeto y el punto de pivote de forma
que ste regrese a su posicin original.
1
P ' ={T ( x r , y r)R( )T ( x r , y r )}P
P ' =R( x r , y r ,)P
Transformaciones
Rotacin 2D general sobre cualquier punto de
pivote:
(x , y) (x ' , y ' )
1
P ' =T RTP
[ ][ ][ ]
x' cos sin x r (cos 1) y r sin x
y ' = sin cos x r sin + y r (cos 1) y
1 0 0 1 1
Transformaciones
Rotacin 3D sobre un eje no alineado con los
ejes de coordenadas:
Transformaciones
Rotacin 3D sobre un eje no alineado con los
ejes de coordenadas:
1. Trasladar el objeto para que el eje de rotacin
pase a travs del origen de coordenadas.
2. Rotar el objeto para que el eje de rotacin se
alinee con el eje de coordenadas.
3. Rotar sobre el eje de coordenadas.
4. Aplicar la rotacin inversa para devolver el eje de
rotacin a su orientacin original.
5. Trasladar el objeto para que el eje de rotacin
retorne a su posicin original.
Transformaciones
Rotacin 3D sobre un eje no alineado con los
ejes de coordenadas:
y y
eje de eje de
rotacin rotacin
z x z x
y y
eje de eje de
rotacin rotacin
z x z x
y y
eje de eje de
rotacin rotacin
z x z x
[ ] [ ]
1 0 0 5 2 0 0 0
0 1 0 4 0 3 0 0
0 0 1 3 0 0 1/2 0
0 0 0 1 0 0 0 1
Rotacin:
[ ][ ]
cos(45) 0 sin (45) 0 2/ 2 0 2/2 0
0 1 0 0 0 1 0 0
=
sin (45) 0 cos(45) 0 2/ 2 0 2/2 0
0 0 0 1 0 0 0 1
Transformaciones
Ejercicio 3.1:
[ ][ ][ ]
2 0 0 0 2/2 0 2/2 0 1 0 0 5
0 3 0 0 0 1 0 00 1 0 4 =
0 0 1/ 2 0 2/ 2 0 2/2 0 0 0 1 3
0 0 0 1 0 0 0 1 0 0 0 1
[ ][ ]
2
0 2 0 1 0 0 5
0 3 0 00 1 0 4 =
2/ 4 0 2 /2 0 0 0 1 3
0 0 0 1 0 0 0 1
[ ]
2
0 2 8 2
0 3 0 12
2/ 4 0 2 /2 2/ 4
0 0 0 1
Transformaciones
Ejercicio 3.2:
Aplicar la transformacin compuesta al
tringulo definido por los puntos (5,3,0), (6,7,1)
y (2,8,-2).
Transformaciones
Ejercicio 3.2:
[ ][ ] [ ][ ]
2 0 2 8 2 5 3 2 4.24
0 3 0 12
3 = 21 = 21
2/ 4 0 2 /2 2/ 4 0 6 2/4 2.12
0 0 0 1 1 1 1
[ ][ ] [ ][ ]
2 0 2 8 2 6 2 1.41
0 3 0 12
7 = 33 = 33
2/ 4 0 2 /2 2/ 4 1 5 2/4 1.77
0 0 0 1 1 1 1
[ ][ ] [ ][ ]
2 0 2 8 2 2 8 2 11.31
0 3 0 12 8 = 36 = 36
2/ 4 0 2 /2 2/ 4 2 7 2 / 4 2.47
0 0 0 1 1 1 1
Transformaciones
Transformacin general: cualquier combinacin
de traslaciones, rotaciones, escalas,
reflexiones e inclinaciones.
[ ][ ][ ]
x' s x cos s y sin x c (1s x cos)+ yc s y sin + t x x
y ' = s x sin s y cos y c (1 s y cos ) xc s x sin + t y y
1 0 0 1 1
Transformaciones
Transformacin rgida: combinacin de
traslaciones y rotaciones (tambin reflexiones).
P ' =T (t x , t y )R( xc , y c , )P
[ ][ ][ ]
x' cos sin x r (1cos)+ y r sin + t x x
y ' = sin cos y r (1cos) x r sin + t y y
1 0 0 1 1
Transformaciones
Transformacin lineal: preserva la suma
vectorial y la multiplicacin por un escalar.
f ( x+ y )=f ( x)+f ( y )
f ( x)= f ( x)
http://www.we-r-here.com/cad/tutorials/level_1/images/First_angle_projecting.png
Transformaciones
Transformacin (proyeccin) ortogrfica:
[ ][ ][ ]
x' 1 0 0 0 x
y' = 0 1 0 0
y
z' 0 0 0 0 z
1 0 0 0 1 1
Transformaciones
Transformacin (proyeccin) ortogrfica:
volumen de visualizacin paraleleppedo,
slo objetos dentro del volumen se dibujan en
la pantalla.
http://www.glprogramming.com/red/chapter03.html
Transformaciones
Transformacin (proyeccin) ortogrfica:
matriz de proyeccin.
[ ]
2 xRight+ xLeft
0 0
xRight xLeft xRight xLeft
2 yTop+ yBottom
0 0
yTop yBottom yTop yBottom
2 zFar + zNear
0 0
zFarzNear zFar zNear
0 0 0 1
Transformaciones
Transformacin (proyeccin) en perspectiva:
objetos lejanos ms pequeos, cercanos ms
grandes, no se preservan las medidas
originales de los objetos.
https://en.wikipedia.org/wiki/Graphical_projection
Transformaciones
Transformacin (proyeccin) en perspectiva:
forma simple, origen como centro de
proyeccin y plano de la imagen en z=1.
(x , y , z ) (x ' , y ' , z ' )
P ' =PR pP
[ ][ ][ ]
x' 1 0 0 0 x
y' = 0 1 0 0
y
z' 0 0 1 0 z
w' 0 0 1 0 1
Transformaciones
Transformacin (proyeccin) en perspectiva:
forma simple, origen como centro de
proyeccin y plano de la imagen en z=1.
Despus de la multiplicacin, el componente w'
puede cambiar, siendo las coordenadas reales:
[] []
xf x'
yf 1 y'
=
zf w ' z'
1 w'
Transformaciones
Transformacin (proyeccin) en perspectiva:
volumen de visualizacin pirmide truncada
(frustum).
Parmetros:
Fovy (fovea): ngulo total de visin vertical.
Aspect (aspecto): razn entre altura y ancho.
zNear: el plano de visualizacin cercano.
zFar: el plano de visualizacin lejano.
(zNear y zFar acotan el volumen de visualizacin).
Transformaciones
Transformacin (proyeccin) en perspectiva:
volumen de visualizacin pirmide truncada
(frustum).
http://www.ntu.edu.sg/home/ehchua/programming/opengl/CG_BasicsTheory.html
Transformaciones
Transformacin (proyeccin) en perspectiva:
matriz de proyeccin.
[ ]
f
0 0 0
aspect
0 f 0 0
zFar+ zNear 2 zFar zNear
0 0
zNear zFar zNear zFar
0 0 1 0
1
f=
tan( fovy / 2)
Prxima semana
Definicin de proyecto:
Definicin de problema, con algo de contexto.
Objetivo del proyecto.
Actividades tentativas.
Referencias.