1 / 48

>> Transformación << Transformaciones 3D

>> Transformación << Transformaciones 3D. LINK http:// www .sc.ehu.es/ccwgamoa/docencia/Material/Presentaciones. 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

kyne
Download Presentation

>> Transformación << Transformaciones 3D

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. >> Transformación<<Transformaciones 3D LINK http://www.sc.ehu.es/ccwgamoa/docencia/Material/Presentaciones A. García-Alonso

  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 A. García-Alonso

  3. Traslación de un cuerpo Entry Level Graphics Course Curriculum Western Michigan University Jason_a.cavanaugh@wmich.edu http://grog.lab2.cc.wmich.edu/atkins/section52.htm A. García-Alonso

  4. y P’ t P x z Traslación de un punto 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 A. García-Alonso ver nota

  5. Escalado • Escalado homogéneo en los tres ejes, con pívot (centro) de escalado en el origen A. García-Alonso 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 A. García-Alonso ver nota

  7. ... • Escalado no homogéneo: en cada eje se utiliza un coeficiente de escalado distinto. A. García-Alonso

  8. Cálculo del escalado • El escalado se define mediante factores de escala • Escalado homogéneo : un único factor s , s > 0 • s > 1 aumenta el tamaño • s < 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 A. García-Alonso

  9. y y x x z z 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 A. García-Alonso

  10. Rotación sobre un eje coordenado Entry Level Graphics Course Curriculum Western Michigan University Jason_a.cavanaugh@wmich.edu http://grog.lab2.cc.wmich.edu/atkins/section52.htm A. García-Alonso

  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_fundamentals A. García-Alonso

  12. ... • Signo o sentido de la rotación A. García-Alonso

  13. y y y P j : (0,1,0) U α β i Q x x x U’ z z z ... • 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’ A. García-Alonso

  14. y P y P’ x P z θ θ x z Rotación Giro  Coordenada polar • Distinguir • Rotación (no usa origen de referencia) • Coordenada polar (requiere referencia) Coordenada polar referida al eje z A. García-Alonso

  15. y P’ P β x z Rotación de un punto sobre el eje y 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 A. García-Alonso

  16. y x x´ cos β 0 sin β x y´ 0 1 0 y z´ -sin β 0 cos β z P’ P β α z x’ = z sin β + x cos β y’ = y z’ = z cos β – x sin β • Usando dos parámetros auxiliares : α y d (distancia de P al eje y), se puede expresar : x = d sin α z = d cos α • Similarmente, y sustituyendo lo anterior, se obtiene: x’ = d sin (α + β ) = d ( cos α sin β + sin α cos β ) = z sin β + x cos β y’ = y z’ = d cos (α + β ) = d (cos α cos β – sin α sin β ) = z cos β – x sin β • Que se puede expresar matricialmente : A. García-Alonso

  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 A. García-Alonso

  18. x´ a11 a12 a13 a14 x y´ a21 a22 a23 a24 y z´ a31 a32 a33 a34 z 1 0 0 0 1 1 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) A. García-Alonso

  19. x´ 1 0 0 tx x y´ 0 1 0 ty y z´ 0 0 1 tz z 1 0 0 0 1 1 Matriz de traslación • Expresaremos ahora la translación de un punto usando coordenadas homogéneas A. García-Alonso

  20. x´ 1 0 0 0 x y´ 0 cos θ -sin θ 0 y z´ 0 sin θ cos θ 0 z 1 0 0 0 1 1 x´ cos θ 0 sin θ 0 x y´ 0 1 0 0 y z´ -sin θ 0 cos θ 0 z 1 0 0 0 1 1 x´ cos θ -sin θ 0 0 x y´ sin θ cos θ 0 0 y z´ 0 0 1 0 z 1 0 0 0 1 1 Matrices de rotación sobre ejes coord. Rotación en x Rotación en y Rotación en z A. García-Alonso

  21. x´ sx 0 0 0 x y´ 0 sy 0 0 y z´ 0 0 sz 0 z 1 0 0 0 1 1 x´ 1 0 a 0 x y´ 0 1 b 0 y z´ 0 0 1 0 z 1 0 0 0 1 1 x´ 1 0 0 0 x y´ 0 1 0 0 y z´ 0 0 -1 0 z 1 0 0 0 1 1 ... Escalado Oblicua en xy (z invariante) Reflexión plano xy A. García-Alonso

  22. 1 0 0 -tx 0 1 0 -ty 0 0 1 -tz 0 0 0 1 1 0 0 tx 0 1 0 ty 0 0 1 tz 0 0 0 1 sx 0 0 0 0 sy 0 0 0 0 sz 0 0 0 0 1 1/sx 0 0 0 0 1/sy 0 0 0 0 1/sz 0 0 0 0 1 MT–1 = MT = MS = MS–1 = Matrices inversas A. García-Alonso ver nota

  23. 1 0 0 0 0 cos θ -sin θ 0 0 sin θ cos θ 0 0 0 0 1 1 0 0 0 0 cos θ sin θ 0 0 -sin θ cos θ 0 0 0 0 1 cos θ 0 -sin θ 0 0 1 0 0 sin θ 0 cos θ 0 0 0 0 1 cos θ sin θ 0 0 -sin θ cos θ 0 0 0 0 1 0 0 0 0 1 MRx–1 = MRy–1 = MRz–1 = MRx = cos θ 0 sin θ 0 0 1 0 0 -sin θ 0 cos θ 0 0 0 0 1 MRy = cos θ -sin θ 0 0 sin θ cos θ 0 0 0 0 1 0 0 0 0 1 MRz = ... A. García-Alonso

  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 A. García-Alonso

  25. No conmutativa La composición de transformaciones no es conmutativa A. García-Alonso

  26. vf vmt y vm Af Am x z 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 Am+vm 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 A. García-Alonso

  27. v (vx,vy,vz) θ y vxz φ vf y vm y vm (vx,vy,vz) vm´ (0,vy,vxz) x θm x vxz x z -φm z z vm´´ (0,0,|v|) ... • Resolvemos el problema con ambos vectores aplicados en el origen • Usaremos coordenadas esféricas (mod, φ, θ) nota * • Llevamos vm sobre el plano yz+ mediante rotY(-φm) : vm´ • Lo transformamos sobre z+ con rotX(θm) : vm´´ • Deshacemos esa rotación con rotX(-θf) • Y queda resuelto el problema aplicando rotY(φf) vxz=sqrt(vx2+vz2) if(vxz /|v|< ε ) φ = 0 else φ = acos( vz/ vxz ) if( vx < 0 ) φ = - φ θ = sin( vy/|v| ) Siempre resulta: -π  φ  π -π/2  θ  π/2 A. García-Alonso ver nota

  28. ... • El problema completo queda resuelto componiendo también las transformaciones de traslación • trans(-Am) • rotY(-φm) • rotX(θm) • rotX(-θf) • rotY(φf) • trans(Af) A. García-Alonso

  29. θ y R r Q O x z 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 A. García-Alonso

  30. Traslac. QO Rotac. α en z Rotac. β en x y y y y y y y Rotac. θ en y R´´ R´´ R R r r R´´´ R’ R’ Q Q x x x x x x x Q’ Q’ Q’ Q’ Q’ z z z z z z z Rotac. -β en x Rotac. - α en z Traslac. -QO • Componiendo las siguientes transformaciones queda el problema resuelto A. García-Alonso

  31. θ y R r Q O y x z R´ x Q´ z ... • 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 A. García-Alonso

  32. rxy y α R´´ R´ x Q’ z ... • Para calcular el ángulo α entre π y πyz tendremos en cuenta : • π es el plano que pasa por el eje z, y contiene a r • πyz es el plano definido por los ejes y-z • Se cumple, por tanto, que O π r´π kπ • rxy es la proyección ortogonal de r sobre πxy • α es el ángulo formado por rxy y j • Tener en cuenta el sentido de giro positivo k • Calcular M2 = MRz (α) • Aplicar M2 a R´ para obtener R´´ • R´´ quedará sobre πyz es decir, se verificará que, Rx´´= 0 • r´´quedará paralelo a ese plano, es decir, se verificará que, rx´´= 0 A. García-Alonso

  33. y β R´´´ R´´ x Q’ z ... • 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 A. García-Alonso

  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 (-α) • 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 A. García-Alonso

  35. rxy y α R´´ R’ x Q’ z y α rxy j rxy z x α ... • Cálculo del ángulo α • Se proyecta r sobre πxy : rxy (rx, ry, 0) • cos α = j·rxy / | rxy | • cos α = ( (0, 1, 0) · (rx, ry, 0) ) / (rx2 + ry2 )1/2 • cos α = ry / (rx2 + ry2 )1/2 • Como cos (α) = cos (–α) , entonces • si rx < 0 entonces el ángulo debe ser (2π- α)α = - α α = acos (ry / (rx2 + ry2 )1/2) si rx < 0 α = - α A. García-Alonso ver nota

  36. y β R´´´ y R´´ β r´´ j r´´ x Q’ z x z β ... • Cálculo del ángulo β • R´´, y por tanto r´´, ha quedado abatido sobre πyz • cos β = j·r´´ / | r´´| • cos β = ( (0, 1, 0) · (0, ry´´, rz´´) ) / (ry´´2 + rz´´2 )1/2 • cos β = ry´´/ (ry´´2 + rz´´2 )1/2 • Como cos β = cos –β , entonces • si rz´´ > 0 entonces el ángulo debe ser (2π- β)β = - β β = acos (ry´´/ (ry´´2 + rz´´2 )1/2) si rz´´ > 0 β = - β A. García-Alonso

  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 A. García-Alonso

  38. R1 R2 R3 T3x1 01x3 1 I3x3 T3x1 01x3 1 |R1| 0 0 0|R2|0 03x1 0 0 |R3| 01x3 1 R1 R2 R3 03x1 |R1| |R2| |R3| 01x3 1 M = T = S = R = ... Se puede comprobar que si Entonces A. García-Alonso

  39. I3x3 -T3x1 01x3 1 T-1= S-1 = ... 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 porser una matriz de columnas ortonormales 1/|R1| 0 0 0 1/|R2|0 03x1 0 0 1/|R3| 01x3 1 A. García-Alonso

  40. x´ a11 a12 a13 a14 x y´ a21 a22 a23 a24 y z´ a31 a32 a33 a34 z 1 0 0 0 1 1 a11 a21 a31 0 a12 a22 a32 0 a13 a23 a33 0 a14 a24 a34 1 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 } A. García-Alonso ver nota

  41. r1xr1yr1z0 r2xr2yr2z0 r3xr3yr3z0 tx tytz 1 ... • 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] A. García-Alonso

  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 A. García-Alonso

  43. Álgebra : matriz cambio de base +++ A. García-Alonso

  44. Transf. 3D vs. Cambio Sist. Ref. A. García-Alonso

  45. Quaternion • Fundamentos matemáticos (Hearn Anexo 6) • q = s + ia + jb + kc ; q =(s, v) • q1+q2 = (s1+s2, v1+v2) • q1q2 = (s1s2 - v1·v2 , s1 v2+s2v1+s1+v1v2) • |q|2 = s2 + v·v • q-1 = (1/|q|2) (s, -v) • Uso en rotaciones (Hearn 11.2, al final) A. García-Alonso

  46. “Clase” trfm3D +++ A. García-Alonso

  47. Gestión trfm. 3D en OpenGL +++ A. García-Alonso

  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 A. García-Alonso

More Related