La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

>> Transformación << Transformaciones 3D

Presentaciones similares


Presentación del tema: ">> Transformación << Transformaciones 3D"— Transcripción de la presentación:

1 >> Transformación << Transformaciones 3D
LINK Trfm.3D A. García-Alonso

2 Contenido Transformaciones (Foley 5, Hearn 11) Coordenadas homogéneas
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 Trfm.3D A. García-Alonso

3 Traslación de un cuerpo
Entry Level Graphics Course Curriculum Western Michigan University Trfm.3D A. García-Alonso

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) : En la figura aparece en la izquierda el objeto en la posición original. En la derecha aparece el objeto –en el mismo sistema de referencia-, pero en la nueva posición generada a través de la transformación de las coordenadas de sus vértices. x’ = x + tx y’ = y + ty z’ = z + tz t P P’ Traslación de un punto y z x Trfm.3D A. García-Alonso ver nota

5 Escalado Escalado homogéneo en los tres ejes, con pívot (centro) de escalado en el origen En la figura de la izquierda aparecen dos vistas distintas del mismo objeto en la situación original. En la derecha aparece el objeto –en el mismo sistema de referencia, y en las mismas vistas-, pero en la nueva posición generada a través de la transformación de las coordenadas de sus vértices. Trfm.3D 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 Obsérvese que la proyección isométrica del objeto transformado (superior derecha) es idéntica a la vista en la transparencia anterior, sin embargo en la vista inferior se observa cómo el pívot de esta transformación está en el centro del cubo envolvente del objeto.. Trfm.3D A. García-Alonso ver nota

7 ... Escalado no homogéneo: en cada eje se utiliza un coeficiente de escalado distinto. Trfm.3D 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 Trfm.3D A. García-Alonso

9 Oblicua (shear) x’ = shx · x y’ = y z’ = z x’ = x y’ = shy · y z’ = z
z’ = shz · z x y z x’ = shx · x y’ = y z’ = shz · z Trfm.3D A. García-Alonso

10 Rotación sobre un eje coordenado
Entry Level Graphics Course Curriculum Western Michigan University Trfm.3D 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 publications/cacguide/viz/sem_notes/3d_fundamentals Trfm.3D A. García-Alonso

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

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

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

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

16 Similarmente, y sustituyendo lo anterior, se obtiene:
β P P’ α y x 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 : x´ cos β 0 sin β x y´ y z´ -sin β 0 cos β z Trfm.3D 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 Trfm.3D A. García-Alonso

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

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

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

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

22 Matrices inversas 1 0 0 tx 1 0 0 -tx 0 1 0 ty 0 1 0 -ty 0 0 1 tz
MT = tx ty tz MT–1 = sx 0 0 0 0 sy 0 0 0 0 sz 0 MS = Modo de evaluar las transformaciones inversas : Usar los métodos matriciales habituales Razonamiento geométrico : a) La translación inversa a (tx, ty, tz) es (-tx, -ty, -tz) b) La rotación inversa a θ es -θ y como [cos -θ = cos θ ; sin -θ = -sin θ] ... c) El escalado inverso a s es 1/s 1/sx 0 0 0 0 1/sy 0 0 0 0 1/sz 0 MS–1 = Trfm.3D A. García-Alonso ver nota

23 ... 1 0 0 0 0 cos θ -sin θ 0 0 sin θ cos θ 0 0 0 0 1 MRx = 1 0 0 0
0 cos θ -sin θ 0 0 sin θ cos θ 0 MRx = 0 cos θ sin θ 0 0 -sin θ cos θ 0 MRx–1 = cos θ 0 sin θ 0 -sin θ 0 cos θ 0 MRy = cos θ 0 -sin θ 0 sin θ 0 cos θ 0 MRy–1 = cos θ -sin θ 0 0 sin θ cos θ 0 0 MRz = cos θ sin θ 0 0 -sin θ cos θ 0 0 MRz–1 = Trfm.3D 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 Trfm.3D A. García-Alonso

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

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 Am+vm lo transforma situándolo sobre el semieje positivo de vf x y z vm Am vf Af vmt NOTA : se dibuja en negro la recta soporte: Continua por encima del plano xz Discontinua por debajo Trfm.3D A. García-Alonso

27 ... 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) Nota * Cuando vxz se hace cero, es decir, cuando θ= ± π/2, entonces a φ se le puede asignar cualquier valor, pero si esa variable polar está cambiando en el tiempo, entonces conviene conservar el valor que tenía en el estado anterior : φnew = φold x y z vxz vm (vx,vy,vz) vm´ (0,vy,vxz) vm´´ (0,0,|v|) -φm θm vxz=sqrt(vx2+vz2) if( vxz / | v | < ε ) φ = 0 else φ = acos( vz/ vxz ) if( vx < 0 ) φ = - φ x y z vf vm x y z v (vx,vy,vz) θ φ vxz θ = sin( vy / | v | ) Siempre resulta: -π  φ  π -π/2  θ  π/2 Trfm.3D 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) Trfm.3D A. García-Alonso

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

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

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 Q´ = O (queda sobre el origen) R´ = M1 · R OR´ = r´ = r x y z θ Q R O r x y z Trfm.3D A. García-Alonso

32 ... 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 R´´ x y rxy z Q’ α Trfm.3D A. García-Alonso

33 ... Calcular el ángulo β entre r´´ y j Calcular M3 = MRx (β)
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 x y z Q’ R´´´ R´´ β Trfm.3D 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 Trfm.3D A. García-Alonso

35 ... Cálculo del ángulo α Se proyecta r sobre πxy : rxy (rx, ry, 0)
z Q’ R’ α ... 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π- α)  α = - α Nota : Si r es casi paralelo al eje “z”, el denominador (rx2 + ry2 )1/2 se hace casi 0, por tanto si rz> (1- ξ), entonces hay que resolver el problema de otro modo, que es mucho más simple, pues se puede girar directamente el ángulo θ alrededor del eje “z”. α y z x rxy j α = acos ( ry / (rx2 + ry2 )1/2 ) si rx < 0  α = - α Trfm.3D A. García-Alonso ver nota

36 x y z Q’ R´´´ R´´ β ... 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π- β)  β = - β β r´´ j z x y β = acos ( ry´´ / (ry´´2 + rz´´2 )1/2 ) si rz´´ > 0  β = - β Trfm.3D 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 Trfm.3D A. García-Alonso

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

39 ... Por tanto Y las inversas de estas matrices se calculan fácilmente
M-1 = (T · R · S)-1 = S-1 · R-1 · T-1 Y las inversas de estas matrices se calculan fácilmente I3x3 -T3x1 01x3 1 T-1= R-1 = RT por ser una matriz de columnas ortonormales 1/ |R1| 0 0 0 1/ |R2| x1 0 0 1/|R3| 01x3 1 S-1 = Trfm.3D A. García-Alonso

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´ a11 a12 a13 a14 x y´ a21 a22 a23 a24 y z´ a31 a32 a33 a34 z // The meaning of the parameters that define the transformation are : // // | r1x r1y r1z 0 | // {x' y' z' 1} = {x y z 1} | r2x r2y r2z 0 | // | r3x r3y r3z 0 | // | tx ty tz 1 | // OpenGL stores transformations in one array : // [r1x r1y r1z 0 r2x r2y r2z 0 r3x r3y r3z 0 tx ty tz 1] // Transformations are composed in the following way : // P1 = P0 * m = P0 * M1 // P2 = P1 * m2 = P0 * m1 * m = P0 * M2 // P3 = P2 * m3 = P0 * m1 * m2 * m = P0 * M3 // In user interfaces, angles are usually in degrees // Within program structures, angles are usually stored in radians // Conversions can be done using the following parameters (see gc.h) : // angle * ANGLE_TO_RAD transforms from degrees into radians // angle * RAD_TO_ANGLE transforms from radians into degrees a11 a21 a31 0 a12 a22 a32 0 a13 a23 a33 0 a14 a24 a34 1 { x’ y’ z’ 1 } { x y z 1 } Trfm.3D A. García-Alonso ver nota

41 [ r1x r1y r1z 0 r2x r2y r2z 0 r3x r3y r3z 0 tx ty tz 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] r1x r1y r1z 0 r2x r2y r2z 0 r3x r3y r3z 0 tx ty tz 1 Trfm.3D 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 Trfm.3D A. García-Alonso

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

44 Transf. 3D vs. Cambio Sist. Ref.
Trfm.3D 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) Trfm.3D A. García-Alonso

46 “Clase” trfm3D +++ Trfm.3D 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 Trfm.3D A. García-Alonso


Descargar ppt ">> Transformación << Transformaciones 3D"

Presentaciones similares


Anuncios Google