transformaci n transformaciones 3d n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
>> Transformación << Transformaciones 3D PowerPoint Presentation
Download Presentation
>> Transformación << Transformaciones 3D

Loading in 2 Seconds...

play fullscreen
1 / 48

>> Transformación << Transformaciones 3D - PowerPoint PPT Presentation


  • 181 Views
  • Uploaded on

>> 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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
transformaci n transformaciones 3d

>> Transformación<<Transformaciones 3D

LINK http://www.sc.ehu.es/ccwgamoa/docencia/Material/Presentaciones

A. García-Alonso

contenido
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

traslaci n de un cuerpo
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

descripci n de la traslaci n

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

escalado
Escalado
  • Escalado homogéneo en los tres ejes, con pívot (centro) de escalado en el origen

A. García-Alonso

ver nota

slide6
...
  • 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

slide7
...
  • Escalado no homogéneo: en cada eje se utiliza un coeficiente de escalado distinto.

A. García-Alonso

c lculo del escalado
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

oblicua shear

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

rotaci n sobre un eje coordenado
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

descripci n de la rotaci n
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

slide12
...
  • Signo o sentido de la rotación

A. García-Alonso

slide13

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

giro coordenada polar

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

c lculo rotaci n de un punto eje y

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

slide16

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

transformaciones y topolog a
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

coordenadas homog neas

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

matriz de traslaci n

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

matrices de rotaci n sobre ejes coord

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

slide21

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

matrices inversas

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

slide23

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

composici n de transformaciones
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

no conmutativa
No conmutativa

La composición de transformaciones no es conmutativa

A. García-Alonso

ejemplo transformar vector ligado

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

slide27

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

slide28
...
  • 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

ejemplo giro sobre cualquier eje

θ

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

slide30

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

slide31

θ

y

R

r

Q

O

y

x

z

x

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

slide32

rxy

y

α

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

slide33

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

slide34
...
  • 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

slide35

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

slide36

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

matriz inversa
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

slide38

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

slide39

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

transformaciones vectores fila

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

slide41

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

otros ejercicios de composici n
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

quaternion
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

clase trfm3d
“Clase” trfm3D +++

A. García-Alonso

animaci n y transformaci n 3d
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