>> Transformaci - PowerPoint PPT Presentation

1 / 48
About This Presentation
Title:

>> Transformaci

Description:

Rotaci n de un cuerpo sobre un eje coordenado. Transformaciones y topolog a ... sus nuevas coordenadas (x', y', z') tras girar un ngulo alrededor del eje y ... – PowerPoint PPT presentation

Number of Views:171
Avg rating:3.0/5.0
Slides: 49
Provided by: scE63
Category:

less

Transcript and Presenter's Notes

Title: >> Transformaci


1
gtgt Transformación ltltTransformaciones 3D
LINK http//www.sc.ehu.es/ccwgamoa/docencia/Materi
al/Presentaciones
2
Contenido
  • Transformaciones (Foley 5, Hearn 11)
  • Traslación de un cuerpo
  • Escalado con pívot en el origen
  • Oblicua (shear)
  • Rotación de un cuerpo sobre un eje coordenado
  • Transformaciones y topología
  • Coordenadas homogéneas
  • Matrices de transformación
  • Composición de transformaciones. Ejemplos
  • Álgebra matriz cambio de base, quaternion
  • Gestión trfm. 3D en OpenGL

3
Traslación de un cuerpo
Entry Level Graphics Course Curriculum Western
Michigan University Jason_a.cavanaugh_at_wmich.edu h
ttp//grog.lab2.cc.wmich.edu/atkins/section52.htm
4
Descripción de la traslación
  • La traslación se define mediante un vector t
  • Todo punto P perteneciente al cuerpo trasladado
    pasa a una posición P determinada por el vector
    de traslación t
  • Sea un punto P de coordenadas (x, y, z) deseamos
    calcular sus nuevas coordenadas (x, y, z) tras
    sufrir una traslación t (tx, ty, tz)

x x tx y y ty z z tz
ver nota
5
Escalado
  • Escalado homogéneo en los tres ejes, con pívot
    (centro) de escalado en el origen

ver nota
6
...
  • El escalado se puede realizar respecto de
    cualquier pívot . En este caso se ha elegido el
    centro del cubo que envuelve al sólido

ver nota
7
...
  • Escalado no homogéneo en cada eje se utiliza un
    coeficiente de escalado distinto.

8
Cálculo del escalado
  • El escalado se define mediante factores de escala
  • Escalado homogéneo un único factor s ? ?, s gt 0
  • s gt 1 aumenta el tamaño
  • s lt 1 disminuye
  • Escalado heterogéneo factores de escalado en
    cada eje coordenado sx, sy, sz
  • El escalado homogéneo es el más habitual
  • Si consideramos como pívot el origen de
    coordenadas
  • Sea un punto P de coordenadas (x, y, z), deseamos
    calcular sus nuevas coordenadas (x, y, z)

x sx x y sy y z sz z
9
Oblicua (shear)
x shx x y y z z
x x y shy y z z
x x y y z shz z
x shx x y y z shz z
10
Rotación sobre un eje coordenado
Entry Level Graphics Course Curriculum Western
Michigan University Jason_a.cavanaugh_at_wmich.edu h
ttp//grog.lab2.cc.wmich.edu/atkins/section52.htm
11
Descripción de la rotación
  • La rotación puede ser sobre cualquier eje
  • Una rotación se define mediante (O, r )
  • Un punto del eje
  • Un vector que determina la dirección y sentido
    del eje
  • El sentido positivo de giro de un eje lo
    determina la regla de la mano derecha o del
    sacacorchos

http//www.cac.psu.edu/dept/cac/publications/web/
publications/cacguide/viz/sem_notes/3d_fundamental
s
12
...
  • Signo o sentido de la rotación

13
...
  • Todo punto P perteneciente al cuerpo girado pasa
    a una posición P por rotación de un ángulo ß
    sobre (Q, j)
  • La figura supone que ß es positivo
  • De modo similar se presentan las rotaciones
    positivas (O, i), (O, k)

P
14
Giro ? Coordenada polar
  • Distinguir
  • Rotación (no usa origen de referencia)
  • Coordenada polar (requiere referencia)

Coordenada polar referida al eje z
15
Cálculo rotación de un punto (eje y)
  • Sea un punto P de coordenadas (x, y, z) deseamos
    calcular sus nuevas coordenadas (x, y, z) tras
    girar un ángulo ß alrededor del eje y
  • P estará contenido en un plano perpendicular a j
    que pasa por P
  • Resolveremos el problema en ese plano

16
x z sin ß x cos ß y y z z cos ß x
sin ß
  • Usando dos parámetros auxiliares a y d
    (distancia de P al eje y), se puede expresar
  • x d sin a
  • z d cos a
  • Similarmente, y sustituyendo lo anterior, se
    obtiene
  • x d sin (a ß ) d ( cos a sin ß sin a cos
    ß ) z sin ß x cos ß
  • y y
  • z d cos (a ß ) d (cos a cos ß sin a sin
    ß ) z cos ß x sin ß
  • Que se puede expresar matricialmente

17
Transformaciones y topología
  • Se puede observar que las relaciones topológicas
    entre vértices, aristas y caras no varían en
    ninguna de las transformaciones estudiadas
  • Tampoco varían sus ángulos relativos, excepto en
    el caso de escalado no homogéneo

18
Coordenadas homogéneas
  • Utilizaremos coordenadas homogéneas (Burgos
    11.8)
  • Con una única estructura de datos se describen
    todas las transformaciones matrices M44
  • Permite componer una sucesión de transformaciones
    en una única matriz
  • No toda M44 representa una transformación
    geométrica válida
  • Lo habitual será considerar la unidad en la
    cuarta coordenada (la homogénea)

19
Matriz de traslación
  • Expresaremos ahora la translación de un punto
    usando coordenadas homogéneas

20
Matrices de rotación sobre ejes coord.
Rotación en x
Rotación en y
Rotación en z
21
...
Escalado
Oblicua en xy (z invariante)
Reflexión plano xy
22
Matrices inversas
ver nota
23
...
24
Composición de transformaciones
  • Apliquemos una transformación P MT1 P
  • Apliquemos otra P MT2 P MT2 MT1
    P ?
  • La matriz que acumula ambas transformaciones será
  • M MT2 MT1
  • En general M MTn ... MT3 MT2 MT1

25
No conmutativa
  • La composición de transformaciones no es
    conmutativa

26
Ejemplo transformar vector ligado
  • Problema dados dos vectores ligados encontrar
    la transformación que lleva a uno sobre el otro
  • Sean dos vectores ligados especificados mediante
    su punto origen y su vector. Los denominaremos
    móvil (Am , vm ) y fijo (Af , vf )
  • Se trata de determinar la matriz de
    transformación que aplicada a Am obtiene Af y
    aplicada al punto Amvm lo transforma situándolo
    sobre el semieje positivo de vf
  • NOTA se dibuja en negro la recta soporte
  • Continua por encima del plano xz
  • Discontinua por debajo

27
...
  • Resolvemos el problema con ambos vectores
    aplicados en el origen
  • Usaremos coordenadas esféricas (mod, f, ?) nota
  • Llevamos vm sobre el plano yz mediante
    rotY(-fm) vm
  • Lo transformamos sobre z con rotX(?m) vm
  • Deshacemos esa rotación con rotX(-?f)
  • Y queda resuelto el problema aplicando rotY(ff)

vxzsqrt(vx2vz2) if( vxz / v lt e ) f
0 else f acos( vz/ vxz ) if( vx lt
0 ) f - f
? sin( vy / v )
Siempre resulta -p ? f ? p -p/2 ? ? ? p/2
ver nota
28
...
  • El problema completo queda resuelto componiendo
    también las transformaciones de traslación
  • trans(-Am)
  • rotY(-fm)
  • rotX(?m)
  • rotX(-?f)
  • rotY(ff)
  • trans(Af)

29
Ejemplo giro sobre cualquier eje
  • Problema giro sobre cualquier eje (Hearn
    11.9)
  • Sea un eje definido por (Q, r )
  • Dado P (x, y, z) deseamos conocer sus nuevas
    coordenadas (x, y, z) tras rotarle un ángulo ?
    sobre dicho eje
  • El problema se resuelve mediante composición de
    transformaciones
  • Primero se enuncian las transformaciones
  • Después se determina el cálculo de cada una de
    ellas
  • Finalmente se explica como evaluar los ángulos
    requeridos

30
  • Componiendo las siguientes transformaciones queda
    el problema resuelto

31
...
  • Solución
  • Sea R tal que R Q r
  • Calcular la traslación que lleva Q al origen
  • M1 MT(-qx, -qy, -qz)
  • Se cumplirá que
  • r M1 r
  • el resultado verificará que
  • r r
  • Q M1 Q
  • el resultado verificará que
  • Q O (queda sobre el origen)
  • R M1 R
  • el resultado verificará que
  • OR r r

32
...
  • Para calcular el ángulo a entre p y pyz tendremos
    en cuenta
  • p es el plano que pasa por el eje z, y contiene a
    r
  • pyz es el plano definido por los ejes y-z
  • Se cumple, por tanto, que O ? p r ? p k ? p
  • rxy es la proyección ortogonal de r sobre pxy
  • a es el ángulo formado por rxy y j
  • Tener en cuenta el sentido de giro positivo k
  • Calcular M2 MRz (a)
  • Aplicar M2 a R para obtener R
  • R quedará sobre pyz
  • es decir, se verificará que, Rx 0
  • r quedará paralelo a ese plano,
  • es decir, se verificará que, rx 0

33
...
  • Calcular el ángulo ß entre r y j
  • Tener en cuenta el sentido de giro positivo i
  • Calcular M3 MRx (ß)
  • Si se aplicase M3 (ß) a R se obtendría R
  • R quedaría situado sobre el eje y

34
...
  • Calcular la matriz de giro M4 MRy (?)
  • Una vez calculado el giro ? alrededor del eje
    transformado, habrá que invertir el proceso de
    transformación y para ello se calculan las
    matrices inversas
  • M5 MRx (-ß)
  • M6 MRz (-a)
  • M7 MT(qx, qy, qz)
  • La matriz de transformación que resuelve el
    problema planteado será la que combina todas esas
    transformaciones
  • M(Q,r) (?) M7 M6 M5 M4 M3 M2 M1
  • No se calcula la expresión algebraica de la
    matriz M(Q,r) (?), sino que se crea el código que
    realiza esos procedimientos

35
...
  • Cálculo del ángulo a
  • Se proyecta r sobre pxy rxy (rx, ry, 0)
  • cos a j rxy / rxy
  • cos a ( (0, 1, 0) (rx, ry, 0) ) / (rx2 ry2
    )1/2
  • cos a ry / (rx2 ry2 )1/2
  • Como cos (a) cos (a) , entonces
  • si rx lt 0 entonces el ángulo debe ser (2p- a) ?
    a - a

a acos ( ry / (rx2 ry2 )1/2 ) si rx lt 0 ? a
- a
ver nota
36
...
  • Cálculo del ángulo ß
  • R, y por tanto r, ha quedado abatido sobre
    pyz
  • cos ß j r / r
  • cos ß ( (0, 1, 0) (0, ry, rz) ) / (ry2
    rz2 )1/2
  • cos ß ry / (ry2 rz2 )1/2
  • Como cos ß cos ß , entonces
  • si rz gt 0 entonces el ángulo debe ser (2p- ß)
    ? ß - ß

ß acos ( ry / (ry2 rz2 )1/2 ) si rz gt
0 ? ß - ß
37
Matriz inversa
  • Dada una matriz de transformación 3D cualquiera,
    su inversa se puede calcular por lo métodos
    habituales del Álgebra de matrices
  • La matriz inversa se puede calcular de modo
    directo si la transformación se ha construido
    componiendo
  • Traslaciones
  • Rotaciones sobre ejes
  • Escalado (tanto homogéneo como heterogéneo)
  • Dada una matriz de ese tipo se puede descomponer
    en un producto de tres matrices (4x4)
  • M T R S

38
...
  • Se puede comprobar que si
  • Entonces

39
...
  • Por tanto
  • M-1 (T R S)-1 S-1 R-1 T-1
  • Y las inversas de estas matrices se calculan
    fácilmente

R-1 RT por ser una matriz de columnas
ortonormales
1/ R1 0 0 0 1/ R2 0 03x1 0 0 1/R3 01x
3 1
40
Transformaciones vectores fila
  • Hasta ahora se han utilizado vectores columna
  • Pero, existen otros modos de gestión, por
    ejemplo, OpenGL utiliza una versión transpuesta
    (vectores fila)

x y z 1
x y z 1
ver nota
41
...
  • Todo lo visto es válido, si se tiene en cuenta
    que hay que transponer la matrices de
    transformación
  • El modo de componer transformaciones, sigue el
    orden opuesto al visto, quedando
  • M MT1 MT2 MT3 ... MTn
  • OpenGL almacena estas matrices en un vector del
    siguiente modo
  • r1x r1y r1z 0 r2x r2y r2z 0 r3x r3y r3z 0 tx ty
    tz 1

42
Otros ejercicios de composición
  • Cambio de sistema de referencia
  • Calcular la matriz de transformación que, con
    pívot en P (Px, Py, Pz), realiza un escalado no
    homogéneo de coeficientes (Sx, Sy, Sz)
  • Pegado de objetos usando caras, aristas y
    vértices
  • Movimientos relativos
  • Gestión de pilas y composición
  • Transformación de vectores
  • Transformación de planos

43
Álgebra matriz cambio de base
44
Transf. 3D vs. Cambio Sist. Ref.
45
Quaternion
  • Fundamentos matemáticos (Hearn Anexo 6)
  • q s ia jb kc q (s, v)
  • q1q2 (s1s2, v1v2)
  • q1q2 (s1s2 - v1 v2 , s1 v2 s2v1 s1v1 ?
    v2)
  • q2 s2 v v
  • q-1 (1/q2) (s, -v)
  • Uso en rotaciones (Hearn 11.2, al final)

46
Clase trfm3D
47
Gestión trfm. 3D en OpenGL
48
Animación y transformación 3D
  • Animación 3D
  • Cadena abierta
  • Cadena cerrada
  • Trayectorias
  • Movimiento con restricciones (automóvil, avión)
  • Control
  • Interactivo (grados de libertad)
  • Procedural ley, comportamiento, agente, etc
  • Definición posición
  • Parámetros para posicionamiento relativo
  • Matriz para cada sólido
Write a Comment
User Comments (0)
About PowerShow.com