2.a Transformaciones

Anuncio
Graficación
III. Transformaciones
Transformaciones 2D
• Con frecuencia, a partir de figuras, se requiere
presentarlas, realizando transformaciones en
ellas.
• Las transformaciones permiten el redibujado de
formas sin tener que calcular individualmente
los valores para su representación
• Las transformaciones básicas son:
• Traslación
• Rotación
• Escalamiento
Traslación
• Se efectúa la traslación de un objeto para
cambiar su posición a lo largo de una línea
recta
• Un punto bidimensional se convierte al agregar
las distancias de traslación tx y ty a la posición
de coordenadas original (x, y)
• xʼ = x + tx
• yʼ = y + ty
• El par (tx, ty) es conocido como vector de
traslación
Traslación
• Se puede expresar como ecuación
matricial
x´ = x + tx
y´ = y + ty
# x"&
P" = % (
$ y"'
" x%
P =$ '
# y&
P´ = P + T
!
!
!
"t x %
T =$ '
#t y &
Rotación
Se aplica la transformación de rotación
bidimensional cuando se cambia la posición de
un objeto a lo largo de una trayectoria de una
circunferencia en el plano xy
Se especifica el ángulo de rotación θ y la posición
(xr,yr) del punto de rotación (pivote)
En su aplicación más simple y directa, el pivote es
el origen
Rotación
x´ = x cos θ - y sen θ
y´ = x sen θ + y cos θ
$cos" #sen"'
R =&
)
%sen" cos " (
P´ = R • P
Escalamiento
La transformación de escalamiento altera el
tamaño de un objeto
Se multiplican los valores de coordenadas por los
factores de escalación sx y sy
#x"& #sx
% (=%
$y"' $ 0
0 & # x&
(•% (
sy ' $ y'
P´ = S • P
El escalamiento se hace con respecto al origen
!
Representaciones de matriz y
coordenadas homogéneas
Cada transformación puede ser expresada así:
P´ = M1 • P + M2
donde
M1 es una matriz 2x2 con factores de
multiplicación (escala o rotación)
M2 es una matriz de 2 elementos con elementos
de aditivos (traslación)
Para la traslación, M1 es matriz identidad
Para rotación o escalamiento, M2 puede contener
coordenadas de pivote (rotación) o centro de
escalamiento
Representaciones de matriz y
coordenadas homogéneas
Si se van a efectuar varias transformaciones, se deben
efectuar por pasos, aunque algunas transformaciones
se pueden agrupar
Para expresar cualquier transformacion bidimensional
como multiplicación de matrices, cada posición de
coordenadas cartesianas (x,y) se expresa con tres
coordenadas homogéneas (xh,yh,h), donde
xh
x=
h
yh
y=
h
Para transformaciones bidimensionales, se puede utilizar
h=1 (cualquier número diferente de cero está bien)
!
!
Coordenadas homogéneas
La expresión de posiciones en coordenadas
homogéneas permiten representar todas las
ecuaciones de transformación geométrica como
multiplicación de matrices
Coordenadas homogéneas:
transformaciones
Traslación
P´=T(tx,ty)•P
#x"& #1 0 t x & #x&
% ( %
( % (
y"
=
0
1
t
y ( • % y(
% ( %
%$ 1 (' %$0 0 1 (' %$1('
Rotación
P´=R(θ)•P
!
Escalamiento
P´=S(sx,sy)•P
!
#x"& #cos ) *sen) 0& # x&
% ( %
( % (
%y"( = %sen) cos) 0( • % y(
%$ 1 (' %$ 0
0
1(' %$1('
#x"& #sx
% ( %
%y"( = % 0
%$ 1 (' %$ 0
0
sy
0
0& # x&
( % (
0( • % y(
1(' %$1('
Coordenadas homogéneas:
transformaciones compuestas
Traslación
Rotación
"1 0 t x1% "1 0 t x 2 % "1 0 t x1 + t x 2 %
$
' $
' $
'
0
1
t
•
0
1
t
=
0
1
t
+
t
y1' $
y 2' $
y1
y 2'
$
$#0 0 1 '& $#0 0 1 '& $#0 0
1 '&
$cos"1 #sen"1 0' $cos " 2
&
) &
sen
"
cos
"
0
1
1
&
) • &sen" 2
&% 0
0 ! 1)( &% 0
Escalamiento
#sen" 2
cos" 2
0
0' $cos("1 + " 2 ) #sen("1 + " 2 ) 0'
) &
)
0) = &sen("1 + " 2 ) cos("1 + " 2 ) 0)
1)( &%
0
0
1)(
"sx1 0 0% "sx 2
$
' $
$ 0 sy1 0' • $ 0
$# 0 0 1'& $# 0
0 0% "sx1sx 2
' $
sy 2 0' = $ 0
0 1'& $# 0
0
0%
'
sy1sy 2 0'
0
1'&
Rotación del punto pivote general
• Si sólo contamos con rotación centrada
en el origen, y queremos efectuar una
rotación con respecto a otro punto:
• Trasladar el objeto de modo que el pivote se
ubique en el origen
• Rotar
• Trasladar el objeto de vuelta
Rotación del punto pivote
general
• Traslación, rotación, traslación
"1 0
$
$0 1
$#0 0
x r % "cos( )sen( 0% "1 0 )x r %
' $
' $
'
y r ' • $sen( cos ( 0' • $0 1 )y r '
1 '& $# 0
0
1'& $#0 0 1 '&
$cos" #sen"
&
= &sen" cos "
&% 0
0
!
x r (1# cos " ) + y r sen"'
)
y r (1# cos " ) # x r sen" )
)(
1
T(xr, yr) • R(θ) • T(-xr, -yr) = R(xr, yr, θ)
!
Transformaciones 3D
Son una extensión a las transformadas 2D
Se agrega un renglón y una columna a la
representación homogénea
Traslación 3D
Llevar de P=(x,y,z) a P´=(x´, y´, z´)
P´=T•P
#x"& #1
% ( %
y"
0
% (=%
% z"( %0
% ( %
$ 1 ' $0
0 0 t x & # x&
( % (
1 0 t y ( % y(
•
0 1 tz ( %z (
( % (
0 0 1 ' $1'
!
Rotación 3D
Con respecto al eje z
Eje x
#x"& #1
0
0
% ( %
%y"( = %0 cos ) *sen)
% z"( %0 sen) cos)
% ( %
0
0
$ 1 ' $0
0& # x&
( % (
0( % y(
•
0!( % z (
( % (
1' $1'
#x"& #cos ) *sen)
% ( %
%y"( = %sen) cos)
% z"( % 0
0
% ( %
0
$1' $ 0
#x"& # cos)
% ( %
%y"( = % 0
% z"( %*sen)
% ( %
$1' $ 0
0
0
1
0
0& # x&
( % (
0( % y(
•
0( % z (
( % (
1' $1'
0 sen) 0& # x&
( % (
1
0
0( % y(
•
0 cos ) 0( % z (
( % (
0
0
1' $1'
Descargar