infografía i transformaciones geométricas. 2002 j.c.dürsteler - upf- iua introducción la luz...
TRANSCRIPT
© © 2002 J.C.Dürsteler - UPF- IUA2002 J.C.Dürsteler - UPF- IUA
Infografía IInfografía I
Transformaciones GeométricasTransformaciones GeométricasTransformaciones GeométricasTransformaciones Geométricas
2002 J.C.Dürsteler - UPF- IUA2002 J.C.Dürsteler - UPF- IUA
IntroducciónIntroducción
• La luz que invade las escenas que vemos se refracta y La luz que invade las escenas que vemos se refracta y se refleja en los objetos.se refleja en los objetos.
• Ciertos colores son absorbidos y otros permanecen. Ciertos colores son absorbidos y otros permanecen.
• Finalmente un frente de ondas excita nuestra retina y Finalmente un frente de ondas excita nuestra retina y percibimos la escena.percibimos la escena.
• Desde el punto de vista de la Infografía, nuestro Desde el punto de vista de la Infografía, nuestro objetivo es crear un frente de onda que evoque una objetivo es crear un frente de onda que evoque una percepción similar, utilizando el hardware disponible.percepción similar, utilizando el hardware disponible.
2002 J.C.Dürsteler - UPF- IUA2002 J.C.Dürsteler - UPF- IUA
IntroducciónIntroducción
• Necesitamos disponer de una descripción Necesitamos disponer de una descripción matemática que nos permita definir matemática que nos permita definir
– el espacio, el espacio,
– los objetos que componen la escena los objetos que componen la escena
– las propiedades de esos objetoslas propiedades de esos objetos
– el movimiento de los mismosel movimiento de los mismos
– algoritmos apropiados para describir la interacción algoritmos apropiados para describir la interacción de la luz con la materia.de la luz con la materia.
2002 J.C.Dürsteler - UPF- IUA2002 J.C.Dürsteler - UPF- IUA
IntroducciónIntroducción
• DisciplinasDisciplinas
– Geometría y Álgebra lineal para la descripción de Geometría y Álgebra lineal para la descripción de los espacios y los movimientos dentro de los los espacios y los movimientos dentro de los mismos.mismos.
– Física, especialmente óptica, para la descripción Física, especialmente óptica, para la descripción de la interacción de la luz con la materia.de la interacción de la luz con la materia.
– Teoría de la percepción y de la visión, para el Teoría de la percepción y de la visión, para el diseño perceptual de las escenasdiseño perceptual de las escenas
2002 J.C.Dürsteler - UPF- IUA2002 J.C.Dürsteler - UPF- IUA
IntroducciónIntroducción
• Nos centraremos en los conceptos matemáticos Nos centraremos en los conceptos matemáticos que permiten describir :que permiten describir :
– el espacioel espacio
– los objetos que residen en éllos objetos que residen en él
– sus posiciones sus posiciones
– los movimientos de los objetos dentro del espaciolos movimientos de los objetos dentro del espacio
2002 J.C.Dürsteler - UPF- IUA2002 J.C.Dürsteler - UPF- IUA
Espacio EuclídeoEspacio Euclídeo
• El espacio euclídeo es el El espacio euclídeo es el espacio determinado por la espacio determinado por la geometría euclídea: geometría euclídea:
• Axioma fundamental de Axioma fundamental de Euclides:Euclides:– Por un punto exterior a Por un punto exterior a
una recta puede trazarse una recta puede trazarse una y sólo una recta una y sólo una recta paralela ella.paralela ella.
• Las propiedades del Las propiedades del espacio euclídeo se espacio euclídeo se corresponden con las que corresponden con las que percibimos en el espacio percibimos en el espacio que nos circunda a escala que nos circunda a escala local.local.
• Los otros axiomas de Los otros axiomas de EuclidesEuclides– Una recta queda determinada Una recta queda determinada
por 2 puntos.por 2 puntos.
– Cualquier segmento se puede Cualquier segmento se puede considerar parte de una línea considerar parte de una línea infinitainfinita
– Es posible construir un Es posible construir un circulo de radio cualquiera y circulo de radio cualquiera y con centro en cualquier con centro en cualquier punto. (La distancia punto. (La distancia pertenece a pertenece a RR.).)
– Si dos líneas se cortan Si dos líneas se cortan formando ángulos formando ángulos congruentes, cada ángulocongruentes, cada ángulo es es congruente con cualquier congruente con cualquier otro formado de la misma otro formado de la misma forma.forma.
2002 J.C.Dürsteler - UPF- IUA2002 J.C.Dürsteler - UPF- IUA
Geometrías no Geometrías no EuclídeasEuclídeas
• Geometría hiperbólica.Geometría hiperbólica.
– Se desarrolla sobre el plano hiperbólico que es Se desarrolla sobre el plano hiperbólico que es equivalente topológicamente a una semiesfera. equivalente topológicamente a una semiesfera.
– Los puntos del infinito son equivalentes a los del Los puntos del infinito son equivalentes a los del círculo máximo de la semiesfera. círculo máximo de la semiesfera.
– En un espacio hiperbólico se pueden trazar al En un espacio hiperbólico se pueden trazar al menos dos rectas paralelas a una dada por un menos dos rectas paralelas a una dada por un punto exterior a la mismapunto exterior a la misma
– http://math.rice.edu/~joel/NonEuclid/http://math.rice.edu/~joel/NonEuclid/
2002 J.C.Dürsteler - UPF- IUA2002 J.C.Dürsteler - UPF- IUA
Geometría HiperbólicaGeometría Hiperbólica
2002 J.C.Dürsteler - UPF- IUA2002 J.C.Dürsteler - UPF- IUA
Geometrías no Geometrías no EuclídeasEuclídeas
• Geometría elíptica.Geometría elíptica.
– En el plano elíptico todos los puntos se consideran En el plano elíptico todos los puntos se consideran equivalentes a los del infinitoequivalentes a los del infinito
– Todos las rectas se cortan en un puntoTodos las rectas se cortan en un punto
– Por tanto no puede trazarse ninguna recta Por tanto no puede trazarse ninguna recta paralela a una dada paralela a una dada
– No existen las rectas paralelas.No existen las rectas paralelas.
2002 J.C.Dürsteler - UPF- IUA2002 J.C.Dürsteler - UPF- IUA
Sistemas referencialesSistemas referenciales
• Un sistema referencial es un sistema que Un sistema referencial es un sistema que permite describir la situación de un punto en el permite describir la situación de un punto en el espacio.espacio.
• Existen múltiples sistemas de coordenadas.Existen múltiples sistemas de coordenadas.
– CartesianasCartesianas
– PolaresPolares
– CilíndricasCilíndricas
– Esféricas...Esféricas...
2002 J.C.Dürsteler - UPF- IUA2002 J.C.Dürsteler - UPF- IUA
Sistemas referencialesSistemas referenciales
• CartesianasCartesianas
– Ejes de coordenadas para representar las Ejes de coordenadas para representar las posiciones de los puntos dentro del espacio.posiciones de los puntos dentro del espacio.
– Coordenadas de un punto P son las distancias que Coordenadas de un punto P son las distancias que hay entre los ejes coordenados y las proyecciones hay entre los ejes coordenados y las proyecciones del punto sobre cada plano coordenado (x,y,z).del punto sobre cada plano coordenado (x,y,z).
– En 2D se llama par ordenado (x,y)En 2D se llama par ordenado (x,y)
X
Y
Z
x
z
y
2002 J.C.Dürsteler - UPF- IUA2002 J.C.Dürsteler - UPF- IUA
Coordenadas polaresCoordenadas polares
• En coordenadas polares:En coordenadas polares:
– radio-vector radio-vector que une el origen de coordenadas y que une el origen de coordenadas y el punto el punto
– ángulo ángulo que subtiende r con el eje que se toma que subtiende r con el eje que se toma como origen de ángulos.como origen de ángulos.
2002 J.C.Dürsteler - UPF- IUA2002 J.C.Dürsteler - UPF- IUA
Magnitudes escalaresMagnitudes escalares
• Un escalar es una magnitud que se puede Un escalar es una magnitud que se puede describir mediante un sólo valor.describir mediante un sólo valor.
• Entre los escalares se pueden definir una serie Entre los escalares se pueden definir una serie de operaciones como la suma, diferencia, de operaciones como la suma, diferencia, multiplicación, etc.multiplicación, etc.
2002 J.C.Dürsteler - UPF- IUA2002 J.C.Dürsteler - UPF- IUA
Magnitudes vectorialesMagnitudes vectoriales
• Las magnitudes que se caracterizan por una Las magnitudes que se caracterizan por una dirección y una magnitud. dirección y una magnitud.
• Se representan mediante vectores. Se representan mediante vectores.
• Gráficamente se representa como un segmento cuya Gráficamente se representa como un segmento cuya longitud indica la magnitud y su orientación la longitud indica la magnitud y su orientación la dirección del mismo.dirección del mismo.
• Cualquier segmento con la misma orientación y Cualquier segmento con la misma orientación y longitud describe el mismo vector. Se toma el vector longitud describe el mismo vector. Se toma el vector con origen en el de coordenadas como representante con origen en el de coordenadas como representante de su clase.de su clase.
• Operaciones: suma y diferencia vectorial, el producto Operaciones: suma y diferencia vectorial, el producto de un vector por un escalar, el producto escalar de de un vector por un escalar, el producto escalar de dos vectores y producto vectorial de dos vectores.dos vectores y producto vectorial de dos vectores.
2002 J.C.Dürsteler - UPF- IUA2002 J.C.Dürsteler - UPF- IUA
Operaciones con Operaciones con vectoresvectores
i
j
k),,(),,( kkjjiikji bababaccc
BAC
222kji cccC
A
B
C
),,(),,( kjikji bsbsbsccc
BsC
2002 J.C.Dürsteler - UPF- IUA2002 J.C.Dürsteler - UPF- IUA
Operaciones con Operaciones con vectoresvectores
i
j
k),,(),,( ijjikiikjkkjkji babababababaccc
BAC
A
B
C
C es la normal al plano AB
2002 J.C.Dürsteler - UPF- IUA2002 J.C.Dürsteler - UPF- IUA
Operaciones con Operaciones con vectoresvectores
i
j
k
BA
BA
BABA
bababac
BAc
kkjjii
)cos(
)cos(
c
B
A
c es la proyección de A sobre B
Útil para encontrar el ánguloentre dos vectores
2002 J.C.Dürsteler - UPF- IUA2002 J.C.Dürsteler - UPF- IUA
Representación Representación matricialmatricial
• Vector (x,y) 2DVector (x,y) 2D
– Vector fila: matriz de 1 fila y 2 Vector fila: matriz de 1 fila y 2 columnascolumnas
– Vector columna: matriz de 2 filas y 1 Vector columna: matriz de 2 filas y 1 columna columna
• En 3DEn 3D
– Vector filaVector fila
– Vector columnaVector columna
zyx
yx
y
x
z
y
x
2002 J.C.Dürsteler - UPF- IUA2002 J.C.Dürsteler - UPF- IUA
Representación Representación matricialmatricial
• Una matriz esUna matriz es
– la notación abreviada del conjunto la notación abreviada del conjunto de las transformaciones lineales de las transformaciones lineales sobre un espacio vectorial Vn(R)sobre un espacio vectorial Vn(R)
– se puede considerar como una tabla se puede considerar como una tabla de valores:de valores:
ihg
fed
cba
333231
232221
131211
aaa
aaa
aaa
A
2002 J.C.Dürsteler - UPF- IUA2002 J.C.Dürsteler - UPF- IUA
Transformaciones 2DTransformaciones 2D
• El corazón de todo paquete gráfico es el kernel El corazón de todo paquete gráfico es el kernel de transformaciones geométricasde transformaciones geométricas
– TraslaciónTraslación
– EscaladoEscalado
– CizallamientoCizallamiento
– ReflexiónReflexión
– RotaciónRotación
• y la concatenación de cualquiera de ellas.y la concatenación de cualquiera de ellas.
2002 J.C.Dürsteler - UPF- IUA2002 J.C.Dürsteler - UPF- IUA
Transformaciones 2DTransformaciones 2D
• TraslaciónTraslación
– Transformación que sitúa un punto Transformación que sitúa un punto (x,y) del plano en una nueva posición (x,y) del plano en una nueva posición (x',y'). (x',y').
– Se consigue añadiendo unas ciertas Se consigue añadiendo unas ciertas cantidades cantidades ddxx y y ddyy
• ddxx representa cuántas unidades hemos representa cuántas unidades hemos trasladado el punto sobre el eje xtrasladado el punto sobre el eje x
• ddyy representa lo mismo sobre el eje y representa lo mismo sobre el eje y
y
x
dyy
dxx
'
'
2002 J.C.Dürsteler - UPF- IUA2002 J.C.Dürsteler - UPF- IUA
Transformaciones 2DTransformaciones 2D
• En notación matricialEn notación matricial
y
x
dyy
dxx
'
'
y
x
d
dT
y
xP
y
xP ,,
'
''
y
x
d
d
y
x
y
x
'
'
TPP '
2002 J.C.Dürsteler - UPF- IUA2002 J.C.Dürsteler - UPF- IUA
Transformaciones 2DTransformaciones 2D
• EscaladoEscalado
– Consiste en multiplicar por un factor (agrandar o Consiste en multiplicar por un factor (agrandar o disminuir) las coordenadas del punto. disminuir) las coordenadas del punto.
– El factor puede ser diferente para cada una de El factor puede ser diferente para cada una de ellas.ellas.
ysy
xsx
y
x
'
'
2002 J.C.Dürsteler - UPF- IUA2002 J.C.Dürsteler - UPF- IUA
EscaladoEscalado
• En forma matricialEn forma matricial
ysy
xsx
y
x
'
'
y
x
s
s
y
x
y
x
0
0
'
' PSP '
y
x
s
sS
y
xP
y
xP
0
0,,
'
''
2002 J.C.Dürsteler - UPF- IUA2002 J.C.Dürsteler - UPF- IUA
CizallamientoCizallamiento
– Desplaza un punto en la dirección de Desplaza un punto en la dirección de uno de los ejes un espacio uno de los ejes un espacio proporcional a la distancia del punto proporcional a la distancia del punto al origen según otro de los ejes.al origen según otro de los ejes.
– Los puntos con una coordenada Los puntos con una coordenada mayor resultan más desplazados que mayor resultan más desplazados que aquellos que la tienen menor. aquellos que la tienen menor.
– El cizallamiento de x respecto de y esEl cizallamiento de x respecto de y es
yy
ycxx x
'
'
2002 J.C.Dürsteler - UPF- IUA2002 J.C.Dürsteler - UPF- IUA
RotaciónRotación
)('
)cos('
sinry
rx
)(
)cos(
sinry
rx
)cos()()()cos()(
)()()cos()cos()cos(
sinsinsin
sinsin
)cos()()()cos('
)()()cos()cos('
sinrsinry
sinsinrrx
)cos()('
)()cos('
ysinxy
sinyxx
2002 J.C.Dürsteler - UPF- IUA2002 J.C.Dürsteler - UPF- IUA
Coordenadas Coordenadas HomogéneasHomogéneas
• En forma abreviada las principales transformaciones En forma abreviada las principales transformaciones sonson
TPP 'PSP 'PRP '
• conviene que todas sean de la misma forma para conviene que todas sean de la misma forma para poder operar de una forma homogéneapoder operar de una forma homogénea
2002 J.C.Dürsteler - UPF- IUA2002 J.C.Dürsteler - UPF- IUA
Coordenadas Coordenadas homogéneashomogéneas
• El concepto de coordenadas homogéneas busca una El concepto de coordenadas homogéneas busca una notación matricial que integre todas las notación matricial que integre todas las transformaciones en una sola matriz.transformaciones en una sola matriz.
• Ello permite realizar las rotaciones, escalado, etc. Ello permite realizar las rotaciones, escalado, etc. respecto a otros puntos que no sean el origen respecto a otros puntos que no sean el origen mediante operaciones matriciales simples. mediante operaciones matriciales simples.
• En una matriz de 2x2 esto no es posible.En una matriz de 2x2 esto no es posible.
2002 J.C.Dürsteler - UPF- IUA2002 J.C.Dürsteler - UPF- IUA
Coordenadas Coordenadas homogéneashomogéneas
• Las coordenadas homogéneas de (x, y) son Las coordenadas homogéneas de (x, y) son
• (x', y', h), donde (x', y', h), donde – x = x'/h x = x'/h
– y = y'/h y = y'/h
– h no puede ser 0. h no puede ser 0.
• Para un punto concreto del plano existen infinitas Para un punto concreto del plano existen infinitas representaciones en coordenadas homogéneasrepresentaciones en coordenadas homogéneas
• (4, 5) se puede representar como (4, 5) se puede representar como – (8, 10, 2)(8, 10, 2)
– (4, 5, 1)(4, 5, 1)
– (12, 15, 3)(12, 15, 3)
2002 J.C.Dürsteler - UPF- IUA2002 J.C.Dürsteler - UPF- IUA
Coordenadas Coordenadas homogéneashomogéneas
• Un conjunto preferido para representar en Un conjunto preferido para representar en coordenadas homogéneas es el conjunto coordenadas homogéneas es el conjunto
• (x, y, 1) o, como vector(x, y, 1) o, como vector
1
y
x
1yx
• Las matrices de transformación son ahora de 3x3Las matrices de transformación son ahora de 3x3
2002 J.C.Dürsteler - UPF- IUA2002 J.C.Dürsteler - UPF- IUA
Traslación en Traslación en coordenadas coordenadas homogéneashomogéneas• Las traslaciones quedan Las traslaciones quedan
• y en forma abreviaday en forma abreviada
• El escalado esEl escalado es
• y en forma abreviada y en forma abreviada
1100
10
01
1
'
'
y
x
d
d
y
x
y
x
PddTP yx ),('
1100
00
00
1
'
'
y
x
s
s
y
x
y
x
PssSP yx ),('
2002 J.C.Dürsteler - UPF- IUA2002 J.C.Dürsteler - UPF- IUA
Transformaciones en Transformaciones en coordenadas coordenadas homogéneashomogéneas
• El cizallamiento respecto a x El cizallamiento respecto a x
• y en forma abreviaday en forma abreviada
• La rotación La rotación
• y en forma abreviada y en forma abreviada
PcCP x )('
1100
0)cos()(
0)()cos(
1
'
'
y
x
sin
sin
y
x
PRP )('
1100
010
01
1
'
'
y
xc
y
x x
2002 J.C.Dürsteler - UPF- IUA2002 J.C.Dürsteler - UPF- IUA
Concatenación de Concatenación de transformacionestransformaciones
• La aplicación consecutiva de transformaciones La aplicación consecutiva de transformaciones geométricas se denomina concatenacióngeométricas se denomina concatenación
• El resultado es otra transformación El resultado es otra transformación geométrica equivalente.geométrica equivalente.
• En notación matricial equivale al producto de En notación matricial equivale al producto de matrices matrices
2002 J.C.Dürsteler - UPF- IUA2002 J.C.Dürsteler - UPF- IUA
Concatenación de Concatenación de transformacionestransformaciones
• Propiedades de las operaciones con matrices Propiedades de las operaciones con matrices cuadradascuadradas
– Adición Adición • Asociativa (A+B)+C=A+(B+C)Asociativa (A+B)+C=A+(B+C)
• Conmutativa A + B = B + AConmutativa A + B = B + A
– Multiplicación Multiplicación • Asociativa (A·B)·C = A·(B·C)Asociativa (A·B)·C = A·(B·C)
• NO conmutativa A·B ‡ B·A en generalNO conmutativa A·B ‡ B·A en general
• Distributiva con respecto a la adición por ambos Distributiva con respecto a la adición por ambos ladoslados
A·(B+C) = A·B+B·CA·(B+C) = A·B+B·C
(B+C)·A = B·A+C·A(B+C)·A = B·A+C·A
• A·B=0 no implica necesariamente A=0 o B=0A·B=0 no implica necesariamente A=0 o B=0
• A·B=A·C no implica necesariamente B=CA·B=A·C no implica necesariamente B=C
2002 J.C.Dürsteler - UPF- IUA2002 J.C.Dürsteler - UPF- IUA
Propiedades de las Propiedades de las Operaciones con Operaciones con MatricesMatrices
TT ABBA
100
0)cos()(
0)()cos(
11''
sin
sin
yxyx
1100
0)cos()(
0)()cos(
1
'
'
y
x
sin
sin
y
x
2002 J.C.Dürsteler - UPF- IUA2002 J.C.Dürsteler - UPF- IUA
Propiedades de las Propiedades de las Operaciones con Operaciones con MatricesMatrices
11, BAABIABBA
100
10
01
100
10
011
y
x
y
x
d
d
d
d
100
01
0
001
100
00
001
y
x
y
x
s
s
s
s
100
0)cos()(
0)()cos(
100
0)cos()(
0)()cos(1
sin
sin
sin
sin
100
010
01
100
010
011
xx cc
2002 J.C.Dürsteler - UPF- IUA2002 J.C.Dürsteler - UPF- IUA
PddTP yx ),(' 11 '),('' 22 PddTP yx
PddTddTPddTddTP yxyxyxyx )),(),(()),((),('' 11221122
),(),( 1122 yxyx ddTddT
100
10
01
100
10
01
100
10
01
),(),( 21
21
1
1
2
2
1122 yy
xx
y
x
y
x
yxyx dd
dd
d
d
d
d
ddTddT
Concatenación de Concatenación de TraslacionesTraslaciones
• Supongamos que realizamos 2 traslaciones Supongamos que realizamos 2 traslaciones consecutivas.consecutivas.
• Y nos queda realizar el producto matricialY nos queda realizar el producto matricial
2002 J.C.Dürsteler - UPF- IUA2002 J.C.Dürsteler - UPF- IUA
PssSP yx ),(' 11'),('' 22 PssSP yx
PssSssSPssSssSP yxyxyxyx )),(),(()),((),('' 11221122
),(),( 1122 yxyx ssSssS
100
00
00
100
00
00
100
00
00
),(),( 12
12
1
1
2
2
1122 yy
xx
y
x
y
x
yxyx ss
ss
s
s
s
s
ssSssS
Concatenación de Concatenación de EscaladosEscalados
• Cabría esperar que la concatenación de escalados Cabría esperar que la concatenación de escalados fuera multiplicativafuera multiplicativa
• Y nos queda realizar el producto matricialY nos queda realizar el producto matricial
2002 J.C.Dürsteler - UPF- IUA2002 J.C.Dürsteler - UPF- IUA
PRP )(' ')('' PRP
PRRPRRP ))()(())(()(''
)()( RR
100
0)cos()(
0)()cos(
100
0)cos()(
0)()cos(
)()(
sin
sin
sin
sin
RR
Concatenación de Concatenación de RotacionesRotaciones
• Cabría esperar que la concatenación de rotaciones Cabría esperar que la concatenación de rotaciones fuera aditivafuera aditiva
• Y nos queda realizar el producto matricialY nos queda realizar el producto matricial
2002 J.C.Dürsteler - UPF- IUA2002 J.C.Dürsteler - UPF- IUA
)()( RR
100
0)cos()cos()()()()cos()cos()(
0))cos()()()(cos()()()cos()cos(
)()(
sinsinsinsin
sinsinsinsin
RR
Concatenación de Concatenación de RotacionesRotaciones
)cos()()()cos()(
)()()cos()cos()cos(
sinsinsin
sinsin
100
0)cos()(
0)()cos(
)()(
sin
sin
RR
2002 J.C.Dürsteler - UPF- IUA2002 J.C.Dürsteler - UPF- IUA
EjemploEjemplo
• Rotar la figura respecto de P, un ángulo Rotar la figura respecto de P, un ángulo
P(x,y) P
2002 J.C.Dürsteler - UPF- IUA2002 J.C.Dürsteler - UPF- IUA
EjemploEjemplo
• Rotación respecto a un punto fuera del origen =>Rotación respecto a un punto fuera del origen =>
– Traslación al origenTraslación al origen
– RotaciónRotación
– Traslación al punto PTraslación al punto PP
100
10
01
100
0)cos()(
0)()cos(
100
10
01
y
x
sin
sin
y
x
),()(),( yxTRyxT
P
100
)())cos(1()cos()(
)())cos(1()()cos(
xsinysin
ysinxsin
2002 J.C.Dürsteler - UPF- IUA2002 J.C.Dürsteler - UPF- IUA
Window to ViewportWindow to Viewport
• Coordenadas del mundoCoordenadas del mundo
– m, cm, etcm, cm, etc
• ¿Cómo transformarlas en ¿Cómo transformarlas en coordenadas del dispositivo?coordenadas del dispositivo?
• Posibilidades:Posibilidades:
– Dejar la responsabilidad al Dejar la responsabilidad al programadorprogramador
– Especificar una región Especificar una región rectangular en el mundo rectangular en el mundo WindowWindow y su homologa en el y su homologa en el dispositivo dispositivo ViewportViewport
Window
Mundo
Viewport
Dispositivo
2002 J.C.Dürsteler - UPF- IUA2002 J.C.Dürsteler - UPF- IUA
Window to ViewportWindow to Viewport
• La transformación se aplica a todas las primitivas en La transformación se aplica a todas las primitivas en coordenadas del mundo.coordenadas del mundo.
• Se pueden especificar diferentes viewports dentro de Se pueden especificar diferentes viewports dentro de la pantallala pantalla
• ¿Cual es la transformación?¿Cual es la transformación?
Window
Mundo
Window
Mundo
Viewport
Dispositivo
Viewport
Dispositivo
2002 J.C.Dürsteler - UPF- IUA2002 J.C.Dürsteler - UPF- IUA
Window-ViewportWindow-Viewport
),(,),( minminminmax
minmax
minmax
minmaxminminwv yxT
yy
jj
xx
iiSjiTM
imax, jmax
xmin, ymin
xmax, ymax
imin, jmin
100
10
01
100
00
00
100
10
01
min
min
minmax
minmax
minmax
minmax
min
min
wv y
x
yy
jjxx
ii
j
i
M
2002 J.C.Dürsteler - UPF- IUA2002 J.C.Dürsteler - UPF- IUA
Window-ViewportWindow-Viewport
1
' y
x
MPMP wvwv
100
0
0
minminmax
minmax
minmax
minmax
minminmax
minmax
minmax
minmax
wv jyy
jjy
yy
jj
ixx
iix
xx
ii
M
1
)(
)(
' minminmax
minmaxmin
minminmax
minmaxmin
jyy
jjyy
ixx
iixx
P
2002 J.C.Dürsteler - UPF- IUA2002 J.C.Dürsteler - UPF- IUA
Window-ViewportWindow-Viewport
• Muchos paquetes Muchos paquetes combinancombinan
– Transformación w-vTransformación w-v
– Recortado.Recortado.
Window
MundoViewport
Dispositivo
2002 J.C.Dürsteler - UPF- IUA2002 J.C.Dürsteler - UPF- IUA
Coordenadas Coordenadas Normalizadas del Normalizadas del DispositivoDispositivo• NDC Normalized Device CoordinatesNDC Normalized Device Coordinates
– Sistema independiente de dispositivoSistema independiente de dispositivo
– xmin=0, ymin=0xmin=0, ymin=0
– xmax=1, ymax=1xmax=1, ymax=1
• Permite realizar los cálculos sin tener en cuenta Permite realizar los cálculos sin tener en cuenta la resolución del dispositivo.la resolución del dispositivo.
• DC Coordenadas del dispositivoDC Coordenadas del dispositivo
– Enteras, resolucion en Enteras, resolucion en xx y en y en yy
2002 J.C.Dürsteler - UPF- IUA2002 J.C.Dürsteler - UPF- IUA
EficienciaEficiencia
• La matriz 2D más general es una matriz compuesta La matriz 2D más general es una matriz compuesta de la formade la forma
• De las 6 multiplicaciones y 6 sumas, solo necesitamos De las 6 multiplicaciones y 6 sumas, solo necesitamos 4 + 44 + 4
1002221
1211
y
x
trr
trr
M PMP '
100'
'
'
2221
1211
yxh
tyrxry
tyrxrx
y
x
2002 J.C.Dürsteler - UPF- IUA2002 J.C.Dürsteler - UPF- IUA
EficienciaEficiencia
• Vistas incrementales (rotación). Si Vistas incrementales (rotación). Si es pequeño, es pequeño, cos(cos() = 1) = 1
• Problema: Para ángulos totales se acumula el error.Problema: Para ángulos totales se acumula el error.
• Mejor aproximaciónMejor aproximación
yxsiny
ysinxx
)('
)('
))(1()('
)())(()(''2
sinysinxy
ysinsinyxysinxy
2002 J.C.Dürsteler - UPF- IUA2002 J.C.Dürsteler - UPF- IUA
Convención de signos Convención de signos
• Convención de signos para las Convención de signos para las rotacionesrotaciones– Sistema dextrógiroSistema dextrógiro
• Un giro de 90º en sentido antihorario Un giro de 90º en sentido antihorario transforma un eje en otro, visto desde la transforma un eje en otro, visto desde la parte positiva del tercero.parte positiva del tercero.
– Sistema levógiroSistema levógiro• (al revés)(al revés)
• Atención: No todos los textos usan la Atención: No todos los textos usan la misma convención.misma convención.– Matemáticas dextrógiroMatemáticas dextrógiro
– 3D levógiro3D levógiro
• Conversión: Reflexión respecto al plano Conversión: Reflexión respecto al plano xyxy
Z
X
Y
Levogiro
ZX
Y
Dextrogiro
2002 J.C.Dürsteler - UPF- IUA2002 J.C.Dürsteler - UPF- IUA
Transformaciones 3DTransformaciones 3D
• TraslacionesTraslaciones
1000
100
010
001
),,(z
y
x
zyx d
d
d
dddT
• EscaladoEscalado
1000
000
000
000
),,(z
y
x
zyx s
s
s
sssS
1000
0100
010
001
),( y
x
yxxy
c
c
ccC
• CizallamientoCizallamiento
2002 J.C.Dürsteler - UPF- IUA2002 J.C.Dürsteler - UPF- IUA
1000
0)cos()(0
0)()cos(0
0001
)(
sin
sinRx
1000
0)cos(0)(
0010
0)(0)cos(
)(
sin
sin
Ry
1000
0100
00)cos()(
00)()cos(
)(
sin
sin
Rz
Transformaciones 3DTransformaciones 3D
Rotación alrededor de xRotación alrededor de x Rotación alrededor de zRotación alrededor de z
Rotación alrededor de yRotación alrededor de y Reflexión respecto del plano Reflexión respecto del plano xy (z->-z)xy (z->-z)
1000
0100
0010
0001
xyE
2002 J.C.Dürsteler - UPF- IUA2002 J.C.Dürsteler - UPF- IUA
Transformaciones / Transformaciones / Cambio de Sistema Cambio de Sistema CoordenadoCoordenado• Transformaciones Transformaciones
GeométricasGeométricas– Cambio de un conjunto Cambio de un conjunto
de coordenadas a otro de coordenadas a otro en un mismo sistema.en un mismo sistema.
– También puede También puede pensarse como un pensarse como un cambio entre sistemas cambio entre sistemas de coordenadas.de coordenadas.
• Aproximación útil para Aproximación útil para múltiples objetos cada múltiples objetos cada uno definido en su uno definido en su propio sistema.propio sistema.
• SeaSea jiM
la transformación que pasa la transformación que pasa del sistema j al i.del sistema j al i.PP(i)(i) es la representación de es la representación de P en el sistema i, P en el sistema i, PP(j)(j) es la representación de es la representación de P en el sistema jP en el sistema jPP(k)(k) es la representación de es la representación de P en el sistema kP en el sistema k
)()( jji
i PMP
)()( kkj
j PMP
2002 J.C.Dürsteler - UPF- IUA2002 J.C.Dürsteler - UPF- IUA
Transformaciones / Transformaciones / Cambio de Sistema Cambio de Sistema CoordenadoCoordenado
Hay que notar queHay que notar que
)()( jji
i PMP )()( k
kjj PMP
)()()()( kki
kkjji
jji
i PMPMMPMP
kjjiki MMM
ijji MM
1
La aproximación consiste en La aproximación consiste en considerar cada cuerpo en su considerar cada cuerpo en su propio sistema de coordenadas propio sistema de coordenadas y transformarlo y transformarlo apropiadamenteapropiadamente
2002 J.C.Dürsteler - UPF- IUA2002 J.C.Dürsteler - UPF- IUA
Composición de Composición de transformacionestransformaciones
• Como en 2D se resume en la multiplicación de Como en 2D se resume en la multiplicación de matrices.matrices.
• Es la herramienta básica a la hora deEs la herramienta básica a la hora de
– posicionar los objetosposicionar los objetos
– establecer sus orientacionesestablecer sus orientaciones
– animar los movimientosanimar los movimientos
– crear objetos compuestoscrear objetos compuestos
2002 J.C.Dürsteler - UPF- IUA2002 J.C.Dürsteler - UPF- IUA
Rotación alrededor de Rotación alrededor de un eje arbitrarioun eje arbitrario
y
x
z
d
ux
uz
uy
22zy uud
d
uz)cos(
d
usin y)(
d)cos(
xusin )(
xyzyx RRRRRM 11
2002 J.C.Dürsteler - UPF- IUA2002 J.C.Dürsteler - UPF- IUA
Rotación alrededor de Rotación alrededor de un eje arbitrarioun eje arbitrario
xyzyx RRRRRM 11
1000
0//0
0//0
0001
1000
0)cos()(0
0)()cos(0
0001
dudu
dudu
sin
sinR
zy
yzx
2 2z yu u d
d
uz) cos(d
usin
y) (
d ) cos(
x u sin) (
1000
00
0010
00
1000
0)cos(0)(
0010
0)(0)cos(
du
ud
sin
sin
Rx
x
y
2002 J.C.Dürsteler - UPF- IUA2002 J.C.Dürsteler - UPF- IUA
Rotación alrededor de Rotación alrededor de un eje arbitrarioun eje arbitrario
xyzyx RRRRRM 11
1000
0//0
0//0
0001
1000
0)cos()(0
0)()cos(0
0001
dudu
dudu
sin
sinR
zy
yzx
1000
00
0010
00
1000
0)cos(0)(
0010
0)(0)cos(
du
ud
sin
sin
Rx
x
y
1000
0100
00)cos()(
00)()cos(
)(
sin
sin
Rz
1000
0)1)(cos()()cos(1()())cos(1(
0)())cos(1()1)(cos()())cos(1(
0)())cos(1()())cos(1()1)(cos(
)(22
22
22
zzxzyyxz
xzyyyzyx
yxzzyxxx
zuusinuuusinuuu
sinuuuuusinuuu
sinuuusinuuuuu
R
2002 J.C.Dürsteler - UPF- IUA2002 J.C.Dürsteler - UPF- IUA
Rotación en OpenGLRotación en OpenGL
• glRotate*(angulo, uglRotate*(angulo, uxx, u, uyy, u, uzz))
• angulo en gradosangulo en grados
• -1 < u-1 < uxx, u, uyy, u, uzz < 1 < 1
1000
0)1)(cos()()cos(1()())cos(1(
0)())cos(1()1)(cos()())cos(1(
0)())cos(1()())cos(1()1)(cos(
)(22
22
22
zzxzyyxz
xzyyyzyx
yxzzyxxx
zuusinuuusinuuu
sinuuuuusinuuu
sinuuusinuuuuu
R
2002 J.C.Dürsteler - UPF- IUA2002 J.C.Dürsteler - UPF- IUA
Hardware de soporteHardware de soporte
• La realización de transformaciones geométricas es un La realización de transformaciones geométricas es un cuello de botella para las aplicaciones gráficas cuello de botella para las aplicaciones gráficas interactivas. interactivas.
• Para cada imagen generada, se han de trasladar y Para cada imagen generada, se han de trasladar y rotar una gran cantidad de vértices y finalmente se rotar una gran cantidad de vértices y finalmente se han de proyectar sobre la pantalla.han de proyectar sobre la pantalla.
• Muchas implementaciones de hardware contienen Muchas implementaciones de hardware contienen soporte para realizar este tipo de transformaciones soporte para realizar este tipo de transformaciones que va desde soporte a operaciones con vectores que va desde soporte a operaciones con vectores hasta el de todo tipo de operaciones con y entre hasta el de todo tipo de operaciones con y entre matrices.matrices.
2002 J.C.Dürsteler - UPF- IUA2002 J.C.Dürsteler - UPF- IUA
Hardware de soporteHardware de soporte
• Cualquier numero de traslaciones y rotaciones Cualquier numero de traslaciones y rotaciones se pueden concatenar para obtener una se pueden concatenar para obtener una transformación genérica de la formatransformación genérica de la forma
110001
'
'
'
333231
232221
131211
z
y
x
trrr
trrr
trrr
z
y
x
z
y
x
2002 J.C.Dürsteler - UPF- IUA2002 J.C.Dürsteler - UPF- IUA
Hardware de soporteHardware de soporte
110001
'
'
'
333231
232221
131211
z
y
x
trrr
trrr
trrr
z
y
x
z
y
x
z
y
x
tzryrxrx
tzryrxry
tzryrxrx
333231
232221
131211
'
'
'
2002 J.C.Dürsteler - UPF- IUA2002 J.C.Dürsteler - UPF- IUA
Hardware de soporteHardware de soporte
• Las instrucciones MMX que se introdujeron con Las instrucciones MMX que se introdujeron con los procesadores Intel y las 3D Now de los los procesadores Intel y las 3D Now de los procesadores AMD, aprovechan esta forma de procesadores AMD, aprovechan esta forma de paralelismoparalelismo
• Son capaces de ejecutar una operación matricial Son capaces de ejecutar una operación matricial en sólo tres instrucciones, aparte de las en sólo tres instrucciones, aparte de las necesarias para mover y empaquetar los necesarias para mover y empaquetar los argumentos.argumentos.
• 3D Now opera con números en coma flotante3D Now opera con números en coma flotante
• MMX con numeros enterosMMX con numeros enteros
2002 J.C.Dürsteler - UPF- IUA2002 J.C.Dürsteler - UPF- IUA
OpenGLOpenGL
• glPushMatrix y glPopMatrixglPushMatrix y glPopMatrix
• Permiten crear modelos jerárquicos sin tener Permiten crear modelos jerárquicos sin tener que recurrir a la multiplicación por la inversa que recurrir a la multiplicación por la inversa
),()(),(' 1 dydxTRdydxTP