IN01809C

20
Cap´ ıtol 8 Transformacions afins 3D Seguint amb el llenguatge de les transformacions, en aquest cap´ ıtol es tracten les afinitats tridimensionals. S’estudien les isometries en dimensi´o 3 i es dedica es- pecial atenci´ o al tema de les rotacions i les simetries especulars. En particular, es presenten diversos m` e- todes pensats per a la programaci´o eficient de les es- mentades transformacions: per m` etodes directes, per canvis de sistemes de coordenades i per concatenaci´o de transformacions m´ es simples (per exemple, la rota- ci´o respecte d’un eix arbitrari es pot formular com a concatenaci´o de translacions i rotacions respecte dels eixos de coordenades). A la il . lustraci´ o adjunta s’observa el resultat d’aplicar iteradament una rotaci´o respecte de l’eiz Oz sobre un tor de pla diametral vertical. En l’estudi de les transformacions proposarem el m` axim de m` etodesde resoluci´odels problemes perqu` e el lector pugui adquirir destresa en aquests aspectes de la geometria, com correspon a una obra d’estudi. Tamb´ e arribarem, per` o, al desenvolupament final en el qual s’ofereixen ormules llestes per utilitzar directament a la programaci´ o. 8.1 Transformacions afins tridimensionals Les transformacions afins tridimensionals tenen en coordenades l’expressi´o que s’indica segui- dament. Donem tamb´ e la matriu ampliada corresponent: x = a 11 x + a 12 y + a 13 z + t 1 y = a 21 x + a 22 y + a 23 z + t 2 z = a 31 x + a 32 y + a 33 z + t 3 a 11 a 12 a 13 t 1 a 21 a 22 a 23 t 2 a 31 a 32 a 33 t 3 0 0 0 1

description

IN01809C

Transcript of IN01809C

  • Captol 8

    Transformacions afins 3D

    Seguint amb el llenguatge de les transformacions, enaquest captol es tracten les afinitats tridimensionals.Sestudien les isometries en dimensio 3 i es dedica es-pecial atencio al tema de les rotacions i les simetriesespeculars. En particular, es presenten diversos me-todes pensats per a la programacio eficient de les es-mentades transformacions: per metodes directes, percanvis de sistemes de coordenades i per concatenaciode transformacions mes simples (per exemple, la rota-cio respecte dun eix arbitrari es pot formular com aconcatenacio de translacions i rotacions respecte dels

    eixos de coordenades). A la il.lustracio adjunta sobserva el resultat daplicar iteradament unarotacio respecte de leiz Oz sobre un tor de pla diametral vertical.

    En lestudi de les transformacions proposarem el maxim de metodes de resolucio dels problemesperque el lector pugui adquirir destresa en aquests aspectes de la geometria, com correspon auna obra destudi. Tambe arribarem, pero, al desenvolupament final en el qual sofereixenformules llestes per utilitzar directament a la programacio.

    8.1 Transformacions afins tridimensionals

    Les transformacions afins tridimensionals tenen en coordenades lexpressio que sindica segui-dament. Donem tambe la matriu ampliada corresponent:

    x = a11x+ a12y + a13z + t1y = a21x+ a22y + a23z + t2z = a31x+ a32y + a33z + t3

    a11 a12 a13 t1

    a21 a22 a23 t2

    a31 a32 a33 t3

    0 0 0 1

  • 322 Geometria per a la informatica grafica i CAD

    8.2 Translacions tridimensionals

    Les equacions i la matriu ampliada corresponent a una translacio tridimensional de vectorw = (a, b, c) son del tot analogues a les del cas bidimensional:

    x = x+ ay = y + bz = z + c

    Tw =

    1 0 0 a

    0 1 0 b

    0 0 1 c

    0 0 0 1

    Figura 8.1.A la figura es construeixen les piramides resultantsdagrupar cada cara dun dodecaedre amb el seucentre. Despres es traslladen segons vectors per-pendiculars a les cares del dodecaedre.

    Figura 8.2.Una vegada mes, observeucom les transformacions, enaquest cas les translacionstridimensionals, poden sereines de construccio geome-trica. A partir duna figuraprimitiva, com el cub, es potconstruir un objecte similaral cub de Rubik.

    8.3 Canvis descala tridimensionals

    Els canvis descala tridimensionals son del tot similars als canvis descala en el pla. Per analogiaal cas bidimanesional, podem escriure immediatament les equacions i la matriu ampliada delcanvi descala de factors descala (ordenats segons els eixos) (, , ) i de centre C = (a, b, c):

    x = x+ a(1 )y = y + b(1 )z = z + c(1 )

    EC =

    0 0 a(1 )

    0 0 b(1 )

    0 0 c(1 )

    0 0 0 1

  • 8 Transformacions afins 3D 323

    Figura 8.3.Observeu una aplicacio delcanvi descala (homotecia) ala figura (tot i que combina-da amb translacio).

    8.4 Rotacions 3D

    Donem en primer lloc la definicio de gir respecte duna recta (anomenada eix de gir) a lespai.

    Definicio 8.1 Donada una recta r a lespai tridimensional i considerant per a cada punt P R

    3 el pla P que passa per P i es perpendicular a P , el gir Gr deix la recta r i angle

    es la transformacio de lespai que fa correspondre a cada punt P R3 el punt P = Gr (P )determinat per les condicions seguents:

    P P .

    Si R = P r, aleshores d(R,P ) = d(R,P ).

    Langle entre els vectorsRP ,

    RP es .

    Observem que, malgrat que incorpora allo que es essencial en el concepte de rotacio, aquestadefinicio no determina completament la transformacio, ja que hi poden haver dues possibilitats,excepte en el cas que langle sigui 0 o . Per aquest motiu definim el concepte mes precs degir o rotacio positiva respecte dun eix orientat (i, analogament, de rotacio negativa).

    Definicio 8.2 Donat u = 0 i (0, ), la rotacio vectorial positiva Ru dangle i eix u eslaplicacio lineal : R3 R3 tal que deixa invariants els vectors de la mateixa direccio que u isi v es un vector ortogonal a u, aleshores (v) es tal que

    (v) es ortogonal a u.

    (v) = v.

    Langle que formen v, (v) es .

    dete({v, (v), u}) > 0, es a dir, que {v, (v), u} es una base de la mateixa orientacio que{e1, e2, e3}.

    En cas contrari pel que fa a lultima condicio, es a dir, si dete({v, (v), u}) < 0, tindrem unarotacio vectorial negativa dangle 0. Observeu que aquesta es la condicio que controla comes gira en una rotacio, es a dir, cap a quin costat.

    Les rotacions dangles 0, , les considerem positives.

  • 324 Geometria per a la informatica grafica i CAD

    En aquest cas la rotacio tridimensional positiva nindueix una de positiva al subspai ortogonala u orientat per u de la manera habitual.

    u

    r

    v

    (v)

    u

    rv

    (v)

    Figura 8.4

    Observeu que la definicio anterior es correcta, es a dir laplicacio queda efectivament definida,ja que pel teorema de la projeccio ortogonal resulta la descomposicio dun vector x qualsevolen suma dun vector en la direccio du i un altre ortogonal: x = projux+ (x projux).

    Podrem ara prosseguir donant (seguint esquemes del captol anterior) la definicio de rotaciopositiva i negativa respecte dun eix orientat que passi per lorigen i despres respecte dunarecta orientada qualsevol. Procedim directament; amb les notacions anteriors,

    Definicio 8.3 Donada una recta r orientada pel vector u i (0, ), el gir positiu Gu dangle deix orientat r es la transformacio que fa correspondre a cada punt P R3 el punt P R3

    tal que, si R = P r, aleshores la base {RP,

    RP , u} es de la mateixa orientacio que la

    canonica {e1, e2, e3}, es a dir dete(RP,

    RP , u) > 0. En cas contrari tindrem un gir negatiu

    dangle 0. En el cas = 0, el gir es considera positiu.

    Comentaris. Aquestes definicions mereixen forca comentaris informals.

    1. La definicio donada equival a dir que una rotacio positiva indueix sobre els plans perpendicu-lars a leix orientat rotacions que es veuen com a antihoraries des de leix de rotacio positiuo, equivalentment, des del semiespai cap on apunta u dentre els dos possibles determinats perun pla (recordeu que a lespai tridimensional no te sentit parlar de girs antihoraris o recorregutsantihoraris sobre un pla a lespai intrnsicament, ja que nomes te sentit vistos des de i depenper tant del semiespai des don miremel pla). La situacio es radicalment diferent respecte delcas 2D, on no hi ha darrere des don mirar!

    2. Considerem la recta r i, associat al punt P , el pla P , que orientem pel vector u normal al plasegons el procediment habitual, consistent a escollir una base v1, v2 del subspai director del plade manera que {v1, v2, u} i la base canonica determinin la mateixa orientacio. El procedimentes pot semiautomatitzar escollint un vector v que ens pugui interessar per a una aplicaciodeterminada, per exemple, i despres prenent la base {v, uv, u}, o encara es pot automatitzarmes prenent v = e3 u si els vectors e3, u son linealment independents (en el cas que siguindependents podem simplement escollir v = e1 o similar). Al final del proces tenim el pla orientatamb una orientacio relativa a u (u-orientat). Podem partir de u unitaritzat i aleshores obtenim

  • 8 Transformacions afins 3D 325

    una base ortonormal directa. Les rotacions 2D indudes per la rotacio 3D positiva sobre el plaperpendicular coordenat i orientat segons el procediment descrit son rotacions positives 2D (hopodrem justificar convertint el pla en el pla z = 0 corresponent al nou sistema de coordenadesque hi hem construt, eliminar el tercer component 0 i convertir la rotacio induda en una rotacioautenticament 2D), es a dir van des del primer semieix positiu de coordenades cap al segonsemieix positiu de coordenades pel cam mes curt.

    3. Tots aquest conceptes de positivitat son dependents de lorientacio global escollida a lespai;en canviar dorientacio els girs positius produeixen lefecte oposat. Es pot programar larotacio positiva i obtenir lefecte de la rotacio negativa corresponent prenent angles negatius.

    8.4.1 Rotacions respecte dels eixos de coordenades

    Anem a descriure matricialment en aquesta seccio les rotacions positives respecte dels eixosde coordenades cartesians orientats segons lorientacio habitual. Es considera la base canonicausual de R3 {e1, e2, e3}, amb els vectors orientant els eixos que determinen.

    Es consideraran rotacions positives respectes dels eixos de coordenades orientats les rotacionsque son positives segons la definicio general de rotacio positiva respecte dun eix orientat. Aixosignificara per a cada un dels eixos el que es mostra a la figura 8.5.

    RxRy

    Rz

    x+

    z+

    y+

    Figura 8.5

    Rotacio positiva respecte de leix Ox. Amb angle 0, la rotacio positiva corresponent indueixuna rotacio sobre el pla de coordenades yx que es positiva, que es veu com a antihoraria desde leix x+ i que, equivalentment, va de lara primer eix positiu de coordenades y+ (en el plaorientat per {e2, e3}) al segon eix positiu de coordenades z+. La rotacio en el pla bidimensionalyz tindria la matriu que correspon a les rotacions 2D positives (amb angle positiu), es a dir,

    (cos sinsin cos

    )

    Anem a obtenir la matriu corresponent. Si indiquem per la rotacio vectorial corresponent,aleshores simplement hem de calcular les imatges de la base (e1), (e2), (e3). Per les propie-tats de la rotacio, els vectors de leix de rotacio son invariants i, per tant, es (e1) = e1. Siguiara (e2) = ae1 + be2 + ce3, expressio de la imatge en la base canonica. Per la conservacio delproducte escalar, tenim e1 e2 = 0 = 0 = (e1) (e2) = e1 (e2) = e1 (ae1+ be2+ ce3) = a.Analogament provarem que, si (e2) = a

    e1 + be2 + c

    e3, aleshores a = 0. En consequencia,

    la matriu corresponent es

  • 326 Geometria per a la informatica grafica i CAD

    1 0 00 a a

    0 b b

    on la caixa de les a, b, a, b es justament una rotacio 2D positiva dangle . Per tant, ifinalment, podem escriure (amb notacions equivalents, que farem servir indistintament)

    Rx = R1 = R

    e1

    =

    1 0 00 cos sin

    0 sin cos

    Rotacio positiva respecte de leix Oz

    El raonament en aquest cas es similar al de leix Ox. La matriu del gir positiu dangle 0respecte de leix Oz orientat per e3 es (nindiquem notacions que farem servir indistintament)

    Rz = R3 = R

    e3

    =

    cos sin 0sin cos 0

    0 0 1

    Figura 8.6.A la figura es fa una rotacio du-nes de les peces del cub de Rubikrespecte de leix Oz.

    Rotacio positiva respecte de leix Oy

    La rotacio positiva respecte de leix Oy orientat per e2 dangle 0 indueix una rotacio positivaen el pla perpendicular orientat per e2, es a dir, considerant la base {e3, e1, e2} (orientant elpla per aquests vectors, en lordre indicat), que dona lloc a una orientacio sobre el pla quees oposada a lorientacio derivada de lorientacio originaria, donada per {e1, e3}. Per tant, larotacio positiva 3D indueix sobre el pla de coordenades perpendicular (o equivalentment sobreel subspai {e1, e3}) una rotacio negativa bidimensional, que va de lara segon eix de coordenadespositiu z+ al primer eix de coordenades positiu x+. Ara be, la matriu que en el pla bidimensionalprodueix una rotacio 2D negativa utilitzant un angle 0 te la forma,

    (cos sin sin cos

    )

    Un cop establert aixo, ja resulta facil, per raonaments similars als altres casos, escriure la matriude la rotacio vectorial corresponent:

    Ry = R2 = R

    e2

    =

    cos 0 sin0 1 0

    sin 0 cos

    Es poden finalment formular les matrius ampliades de les rotacions positives respecte dels eixosde coordenades:

  • 8 Transformacions afins 3D 327

    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

    Observacio. Les rotacions 3D en general no commuten. El lector pot comprovar, efectuant el

    producte matricial, que R/2z R

    /2y = R

    /2y R

    /2z .

    8.4.2 Rotacio respecte dun eix arbitrari

    Hi ha diversos metodes per tractar el tema. Exposarem diverses solucions possibles per tal queel lector disposi deines diversificades, depenent de les situacions. Per exemple, si es usuari desoftware amb nul.la programabilitat pero que porta incorporades les translacions i les rotacionsrespecte dels eixos de coordenades, pot utilitzar el metode de concatenacio de transformacionsper obtenir un gir respecte dun eix arbitrari. Si disposa dun llenguatge matematic de moltalt nivell, que accepti expressions vectorials i simboliques, pot estar interessat a utilitzar laformula dEuler per a lobtencio dun gir arbitrari. Si, finalment ha de programar la rotaciorespecte dun eix arbitrari, aleshores es preferible fer servir directament la matriu de rotacioque desenvoluparem.

    A la figura 8.7 saplica una rotacio respecte de leix de coordenades Oy dangle /2 a la figuradel cilindre x2 + y2 = 1, 1 z 1 i es representa conjuntament la figura original i latransformada.

    Figura 8.7

    8.4.2.1 Programacio per canvi de sistema de coordenades

    Les equacions duna rotacio respecte dun eix es poden obtenir per canvi de sistema de coor-denades. La idea es construir una referencia cartesiana adaptada per a la qual leix de rotaciosigui el tercer eix de coordenades z (o x o y si volguessim considerar altres variants), amb laqual cosa efectuar una rotacio respecte daquest eix es efectuar una rotacio respecte del tercereix de coordenades duna referencia; lexpressio matricial, ja la tenim disponible. En concret,

  • 328 Geometria per a la informatica grafica i CAD

    es produira una rotacio positiva utilitzant en una referencia positiva (de la mateixa orientacioque la base usual) la matriu de la forma

    G3 = R3 =

    cos sin 0sin cos 0

    0 0 1

    Com ja sha dit abans, quan es considera un gir respecte dun eix en realitat es respecte duneix o una recta orientada. Escollida una orientacio (dentre dues possibles), la rotacio positivaes respecte daquesta orientacio i es la que sobte aplicant la matriu anterior, per a 0, cosaque significa que leix orientat esta tenint el mateix paper que te leix Oz orientat per e3; sicanviem lorientacio lefecte sera un gir dangle oposat.

    En consequencia, doncs, suposem que tenim la recta de leix donada per un punt Q i un vectordirector u. Escollirem e3

    unitari i determinant lamateixa orientacio que u, es a dir e3 = 1uu.

    Aleshores procedirem de la manera seguent:

    Es construeix la base adaptada on el tercer vector determina la mateixa orientacio de leixque el vector director que ens interessa. Per productes vectorials adequats es pot construiruna base ortonormal de la mateixa orientacio que la usual i, en conjunt, el sistema decoordenades S = (Q; {e1 , e2 , e3 }). Expressarem amb X les coordenades en aquestsistema i amb X el transformat de X per la rotacio. Sigui A la matriu de canvi de basecorresponent, matriu ortogonal, ja que correspon a un canvi entre bases ortonormals i,per tant, dinversa igual a la transposta.

    Sexpressa el punt P (que cal girar) en el nou sistema de coordenades, es a dir, es P =AT (P Q).

    Saplica la transformacio de rotacio en el nou sistema de coordenades, que sera, per tant,una rotacio respecte del tercer (nou) eix de cordenades, es a dir P = R3P

    .

    Finalment, sexpressa el resultat en el sistema original: P = AP +Q

    Resumint resulta

    Gr (P ) = A(G3 (A

    T (P Q))) +Q

    Vegem un exemple concret en el qual saplica aquest metode.

    Exemple 8.1. Obteniu per canvi de sistema de coordenades les equacions dun gir positu dangle i deix la recta r : x = y, z = 1.

    El problema no esta ben definit ja que hem despecificar una orientacio de la recta, cosa quefarem en el curs de la resolucio.

    Sigui S = (O; {e1, e2, e3}) el sistema de coordenades original, amb coordenades x, y, z. Obser-vem que leix passa pel punt Q = (0, 0, 1) i que un vector director es u = (1, 1, 0), que adoptemcom a determinacio de lorientacio de leix. Definim ara una nova base ortonormal positiva,dacord amb lesquema indicat anteriorment. Aleshores tindrem e3

    = 1uu =12(1, 1, 0) =

    ( 12, 1

    2, 0). Resulta comode prendre ara e1

    = e3 = (0, 0, 1), ja unitari, i finalment prendrem

    e2 = e3

    e1 = (12, 1

    2, 0).

    Tenim, doncs, en resum,

  • 8 Transformacions afins 3D 329

    e1 = (0, 0, 1)

    e2 = ( 1

    2, 1

    2, 0)

    e3 = ( 1

    2, 1

    2, 0)

    La matriu de canvi de base A corresponent (i la transposta) es

    A =

    0

    12

    12

    0 12

    12

    1 0 0

    AT =

    0 0 11

    2 1

    20

    12

    12

    0

    En el sistema S = (Q; {e1 , e2 , e3 }) la matriu de gir buscada es la matriu de gir respecte deltercer eix de coordenades:

    G3 = R3 =

    cos sin 0sin cos 0

    0 0 1

    Finalment, si calculem B = AG3AT , la rotacio es

    P = Gr (P ) = BP + (QBQ)

    Observeu que la matriu ampliada corresponent es

    B QBQ

    0 0 0 1

    8.4.2.2 Programacio per concatenacio de transformacions afins

    En primer lloc, podem suposar que leix r passa per lorigen, ja que si no fos aix, primerpodrem fer una translacio TP , essent P r, que convertiria el problema en un dequivalentde rotacio respecte dun eix r0 que passa per lorigen i es paral

    .lel a r. Sefectuaria la rotaciode la figura i despres es restituiria la situacio desfent la translacio. Lesquema seria

    Rr = TP Rr0 TP

    Suposem, doncs, que volem resoldre el problema defectuar un gir positiu dangle respectedun eix e orientat pel vector director u = (u1, u2, u3), que podem suposar unitari (tot i que no esimprescindible per al que ara anem a fer). Suposem que leix passa per lorigen de coordenades(si no fos aix aplicarem el que hem dit abans).

    La idea es efectuar una concatenacio de rotacions respecte dels eixos de coordenades fins aconvertir el nostre eix de rotacio en leix Oz, amb orientacions coincidents, cas per al qual jatenim resolt el problema. Es fa la rotacio i despres es desfan, en lordre invers, les rotacionsauxiliars realitzades. Se suposa que disposem de les rotacions respecte dels eixos en les formesmatricials descrites anteriorment, de manera que amb angles positius es produeixen rotacionspositives, i negatives amb angles negatius. Dentre diverses variants possibles, nexposem unaunicament.

  • 330 Geometria per a la informatica grafica i CAD

    Sigui q = (0, u2, u3) la projeccio ortogonal de u sobre el pla de coordenades yz i consideremlangle que formen q,e3, angle que sera el de la rotacio R

    x respecte de leix Ox que situara

    q sobre e3 i, per tant, abatra el pla q, e sobre el pla y = 0, obtenint aix en resultat querealment ens interessa, que es situar leix e sobre el pla de coordenades xz, transformant elvector u en u = Rx (u). El problema es el de saber si la rotacio (depenent de la posicio delvector u) sha de fer positiva o negativa, es a dir si als efectes practics (estant formuladapositivament) se li ha de passar un angle positiu o negatiu. Hi ha dos procedimentspossibles:

    z

    e3

    q

    e2y

    x

    e1u e

    OFigura 8.8

    Calculant langle orientat en el pla bidimensional corresponent al yz per projecciodels vectors, projeccio donada per p(x, y, z) = (y, z). Indicarem per w la projecciodun vector generic w i, daquesta manera, tenim q = (u2, u3), e3 = (0, 1), vectors2D per als quals te sentit parlar de langle orientat que formen en lordre q, e3, oque q forma amb e3 en el pla orientat per {e2, e3}.

    Calculem langle entre els dos vectors de la manera habitual, es a dir, =arccos qe3qe3 i ara anem a veure si la rotacio ha de ser positiva o no (en el cas

    diferent de 0 o ): es positiva si, i nomes si, dete(q,R(q), e1) > 0, es a dir, si, i nomessi, dete(q,e3, e1) > 0 (ja que el transformat de q ha de ser e3, amb independecia decom sigui la rotacio). Aleshores escollim = si la rotacio es positiva i = enel cas contrari. Observeu que el valor del determinant es precisament u2, de maneraque a la practica simplement podem escriure = signe(u2).

    Amb qualsevol dels dos metodes sarriba a la rotacio Rx .

    Sigui u = Rx (u) = (a, 0, b), resultat defectuar la rotacio respecte de leix x per tal desituar leix de rotacio sobre el pla xz. Ara caldra finalment efectuar una rotacio respectede leix Oy per tal de superposar u sobre e3. Recordem que, amb angles positius, lamatriu de rotacio positiva respecte de leix Oy indueix una rotacio negativa en el pla xz,orientat per {e1, e3}, ja que va del segon eix positiu, ara z+, cap al primer eix positiu,x+, pel cam mes curt. Com en el cas anterior, cal saber quin angle utilitzarem a lamatriu de la rotacio corresponent o be, equivalentment, si la rotacio a realitzar ha de serpositiva o negativa. Podem ara aplicar els mateixos raonaments que en el cas anterior.Es pot procedir mitjancant un test de determinant o be calculant langle orientat 2Dque en el pla bidimensional orientat (orientacio heretada de lespai 3D, congruent amb laglobal de lespai tridimensional): com veiem, si > 0, aleshores ens interessa un gir 3Dnegatiu respecte de leix de les y i, en consequencia, ates el tipus de matriu que utilitzemper a les rotacions positives respecte de Oy (que produeixen rotacions positives per aangles positius), lhaurem de canviar de signe (i analogament si fos < 0); de maneraque finalment haurem de prendre = . Si langle shagues calculat com a angle entre

  • 8 Transformacions afins 3D 331

    vectors 3D, aleshores es decidiria quin es el tipus de rotacio que cal fer i es prendria elsigne corresponent.

    z

    e3

    q

    e2y

    x

    e1u e

    O

    u

    Figura 8.9

    Rx

    Ry

    Figura 8.10

    Finalment, doncs, si seguim aquest esquema de resolucio shaura de fer la concatenacio seguent:

    Ge = Gy G

    y G

    z G

    y G

    x

    Si calcular els angles no fos realment necessari i nomes calgues obtenir les matrius de les rotacionsauxiliars, aleshores nhi ha prou dobtenir les raons trigonometriques sin, cos corresponents,sense necessitat de calcular els angles, cosa que es pot fer per trigonometria elemental.

    8.4.2.3 Formula dEuler

    Suposem que volem obtenir una formula vectorial, compacta, per a la rotacio positiva dunvector respecte dun eix orientat pel vector unitari u, dangle i que passa per lorigen.

    Teorema 8.1 En les condicions anteriors es

    Guv = (v u)u+ cos[v (v u)u] + sin(u v)

  • 332 Geometria per a la informatica grafica i CAD

    Demostracio

    vu

    w

    v

    Figura 8.11

    u

    w

    Gu(w)

    u w

    Considerem la projeccio ortogonal de v sobre u, que es (vu)u, i arael vector diferencia w = v(vu)u, que gira un angle en el pla queel conte i que es perpendicular a u. Tindrem aleshores queGu(v) =(v u)u + Gu(w). Per la formula del triple producte vectorial iutilitzant que u es unitari podem escriure w = v (v u)u =u (v u). Ara, considerem la base ortogonal {w, u w} del pla.Pel desenvolupament del triple producte vectorial podem escriureu w = u v i podem considerar, per tant, la base ortogonalexpressada com {w, u v} i vegem que aquest vectors tenen lamateixa norma: per lortogonalitat de u,v u resulta w = u(v u) = uv u = u w per la igualtat anterior. Vegemfinalment que Gu(w) = cos w + sin(u v). En efecte, si q1

    es el resultat dunitaritzar w i q2 es el resultat dunitaritzar u v podem escriure G(w) =G(wq1) = wG(q1) = w(cosq1 + sinq2) = coswq1 + sinwq2 = cos w +sinu vq2 = cos w + sinu v, com volem demostrar .

    De fet, es pot reformular la formula anterior per expressar la rotacio dun vector v repecte duneix que passa per lorigen i es de vector director unitari u i dangle , utilitzant el desenvolu-pament del triple producte vectorial:

    Ru(v) = v + (1 cos)(u (u v)) + sin(u v).

    Una variant obtinguda com a consequencia del desenvolupament del triple producte vectoriales

    Ru(v) = v + (1 cos)(u (u v)) + sin(u v).

    Aquestes son les anomenades formules dEuler per a la rotacio a lentorn dun eix. Es potutilitzar directament en sistemes de calcul de tipus simbolic on es pugui escriure formulesmatematiques a alt nivell, com Mathematica o Maple.

    Podem obtenir la matriu de la rotacio positiva dangle deix que passa per lorigen i es devector director unitari u = (u1, u2, u3) relativa a lorientacio donada per u en forma directamentutilitzable per a la programacio.

    Teorema 8.2 La matriu de la rotacio es u21 + cos(1 u21) u1u2(1 cos) u3 sin u3u1(1 cos) + u2 sinu1u2(1 cos) + u3 sin u22 + cos(1 u22) u2u3(1 cos) u1 sin

    u3u1(1 cos) u2 sin u2u3(1 cos) + u1 sin u23 + cos(1 u

    23)

  • 8 Transformacions afins 3D 333

    Demostracio No es mes que una comprovacio. Nomes cal aplicar Gu (segons qualsevol deles variants de la formula dEuler) als vectors de la base canonica v = e1 = (1, 0, 0), v = e2 =(0, 1, 0) v = e3 = (0, 0, 1) i comprovar que sobtenen les tres columnes de la matriu.

    A la figura 8.12 sefectua una sequencia de girs del cub escapcat de multiples de 40 respectede leix que passa pel punt (0, 0, 8) i que es paral.lel a la mitjana del triangle del cub escapcatque correspon al vertex daltura mnima.

    Figura 8.12

    Un possible criteri dorientacio deixos de rotacio. El resultat duna rotacio deix una rectaorientada per u = {u1, u2, u3}, utilitzant les expressions i maneres doperar descrites anterior-ment, depen de quina sigui lorientacio. Canviant lorientacio sobte una rotacio dangle oposatal que utilitzem. Leleccio de lorientacio pot convenir-nos depenent del problema a resoldre, esa dir de com shagi de produir la rotacio. Pero tambe es possible formular un criteri dorienta-cio automatic de cara a la programacio per tal dobtenir el mateix tipus de resultats amb lesrotacions, de forma que els resultats siguin sempre previsibles. Daquesta manera, per exemple,leix es dona mitjancant dos punts A,B de la recta i es calcula u = B A. Seria desitjable(llevat que explcitament no ho volguessim aix) que el resultat no depengues de lordre amb quepassem els punts a la funcio de rotacio; seria millor que per obtenir resultats oposats canviessimlangle de signe.

    Proposem un possible criteri de reorientacio automatica basat en el raonable criteri dobtenirles orientacions usuals quan es tracta dels eixos de coordenades (pero el lector pot perfectamentproposar altres criteris, ja que aixo es purament arbitrari). Si u es vector director de la rectaeix, aleshores es no nul i, en consequencia, no tots els components son zero.

    Criteri

    Cas 1. Si u3 = 0, posem w = u si u3 > 0 i w = u en cas contrari.

    Cas 2. Si u3 = 0, aleshores

    Cas 2.1. Si u2 = 0, posem w = u si u2 > 0 i w = u en cas contrari.

    Cas 2.2. Si u2 = 0, aleshores u1 = 0 i posem w = u si u1 > 0 i w = u en cascontrari.

    El criteri anterior produeix un nou vector director de leix de rotacio. Es pot perfectamentprivilegiar un altre eix de coordenades.

    Aplicacio a la parametritzacio de les superfcies de revolucio. En el captol de superfcies sobte-nia de manera explcita la parametritzacio de la superfcie de revolucio generada a partir duna

  • 334 Geometria per a la informatica grafica i CAD

    corba plana, en el pla xz, per una rotacio completa a lentorn de leix Oz. La situacio plante-jada es limitada; les parametritzacions en casos mes generals es podrien obtenir per canvis desistemes de coordenades.

    Ara que disposem de les expressions de les rotacions respecte de qualsevol eix podem obtenir laparametritzacio duna superfcie de revolucio en un cas general. Vegem com podem reobtenirper aquest metode la parametritzacio que es va obtenir en el captol dedicat a lestudi de lessuperfcies. Considerem la corba parametrica (t) = (x(t), 0, z(t); la parametritzacio de lasuperfcie de revolucio respecte de leix Oz sobte simplement aplicant la matriu de rotaciocorresponent:

    x(t, )y(t, )

    z(t, )

    =

    cos sin 0sin cos 0

    0 0 1

    x(t)0

    z(t)

    =

    x(t) cos x(t) sin

    z(t)

    Per a eixos arbitraris shauria de fer la rotacio corresponent.

    8.5 Simetries axials

    A diferencia del cas bidimensional, les simetries axials tridimensionals conserven lorientacioi no son mes que casos particulars de rotacions de 180 respecte de leix de la simetria. Enaquest cas, el resultat final de la transformacio no depen de si la rotacio es positiva o negativai, en consequencia, lorientacio de leix es irrelevant. Aquest aspecte del problema shauria detenir en compte en canvi si ens interesses la manera concreta defectuar (per rotacio) la simetriaaxial, cosa que podria convenir per controlar un brac dun robot.

    Per obtenir lexpressio explcita nomes cal substituir a la matriu de la rotacio general anteriorlangle per en el cas que leix passi per lorigen; en el cas general shaura de fer una reduccioa aquest cas per translacio. En concret resulta

    2u21 1 2u1u2 2u3u12u1u2 2u22 1 2u2u3

    2u3u1 2u2u3 2u23 1

    A partir duna de les variants de la formula dEuler, tambe podem escriure

    Su(v) = v + 2(u (u v)).

    Figura 8.13.A la figura es mostra el transfor-mat del cilindre x2 + y2 = 1 perla simetria axial deix determi-nat pels punts p1 = (1, 0, 0) ip2 = (1, 1, 1).

  • 8 Transformacions afins 3D 335

    8.6 Simetria especular

    La transformacio de simetria especular es la simetria respecte dun pla. Donat un pla , lasimetria especular respecte daquest pla es la transformacio que fa correspondre a cada punt Planomenat simetric P respecte de P , que es el punt en que es compleixen les dues condicionsseguents:

    PP (el segment PP es perpendicular al pla)

    M = P+P

    2 (el punt mitja del segment es del pla)

    A la figura es mostra el transfor-mat del cilindre x2 + y2 = 1 perla simetria especular respecte delpla x + y + z = 3; es representaen un mateix grafic lobjecte ori-ginal, el transformat, els eixos decoordenades i el pla de simetriaespecular.

    Lexpressio de la simetria especular es pot obtenir de diverses maneres. Nindicarem algunesmolt breument; daltres, les desenvoluparem amb mes detall. Suposem que estem treballant ambla referencia cartesiana habitual de lespai tridimensional i que el pla es donat per

    N Xd = 0,

    amb N = (a, b, c) vector normal al pla, que tambe podem escriure com ax+ by + cz d = 0.

    Metode 1. Dacord amb la definicio, calculem M com a projeccio ortogonal de P sobre el pla i aleshores es P = P + 2

    PM .

    Metode 2. Directament a partir de la definicio. Sigui P0 un punt arbitrari pero fix i sigui P0 el

    simetric de P0 respecte de . Considerem la recta que passa per P0 i es perpendicular al pla; aquesta recta es X = P0 + N, R. Per la primera condicio, P 0 es un punt daquestarecta i sexpressara, per tant, com P 0 = P0 + 0

    N . Ara calculem 0 per tal que el punt mitja

    del segment P0P0 sigui del pla, es a dir, en satisfaci lequacio, cosa que es el mateix que dir que

    N P0+P

    0

    2 d = 0 o, equivalentment,12

    N (2P0+0

    N )d = 0. Aixo ens donara lescalar 0 que

    correspon al simetric P 0, que es, com es comprova facilment, 0 = 2d

    N P0

    N N

    . Ara simplement

    podem escriure P 0 = P0 + 0N , que es lequacio de la transformacio.

    A partir daqu es pot obtenir lexpressio en coordenades:

    x = x+ 2dN (x,y,z)N

    N

    a

    y = y + 2dN (x,y,z)N

    N

    b

    z = z + 2dN (x,y,z)N

    N

    c

    i desenvolupant, la matriu ampliada corresponent:

  • 336 Geometria per a la informatica grafica i CAD

    a2+b2+c2

    a2+b2+c22ab

    a2+b2+c22ac

    a2+b2+c2 2da

    2aba2+b2+c2

    a2b2+c2

    a2+b2+c22bc

    a2+b2+c2 2db

    2aca2+b2+c2

    2bca2+b2+c2

    a2+b2c2

    a2+b2+c2 2dc

    0 0 0 1

    La matriu se simplifica notablement si es te la precaucio dunitaritzar el vector normal, ja quealeshores tenim a2 + b2 + c2 = 1.

    Metode 3. Per canvi de sistema de coordenades. La idea en aquest cas es observar que lessimetries especulars resulten especialment senzilles dobtenir en el cas que el pla de simetriasigui algun dels plans de coordenades. Per exemple, si considerem el pla de coordenades xy,aleshores la simetria especular corresponent es S12(x, y, z) = (x, y,z) i la matriu corresponentes

    S12 =

    1 0 00 1 0

    0 0 1

    Passa el mateix per a les simetries especulars respecte dels altres plans de coordenades. La ideaes construir una referencia cartesiana adaptada al pla respecte de la qual el pla passi a serel de coordenades z = 0, es a dir xy, i en aquest sistema de referencia la simetria especularsigui simplement aplicar la matriu anterior.

    En consequencia, doncs, es pot procedir de la manera que sindica a continuacio per obtenir elsimetric del punt P respecte del pla

    N X d = 0:

    Construccio de la referencia adaptada. En primer lloc cal prendre com a nou origenun punt qualsevol del pla, Q per exemple. En segon lloc, cal prendre e3

    = 1N

    N

    i, posteriorment, per productes vectorials convenients, completar la construccio dunabase ortonormal {e1 , e2 , e3 }. Ara considerem el nou sistema de coordenades S =(Q; {e1 , e2 , e3 }). Expressarem amb X les coordenades en aquest sistema i amb Xel transformat o simetric de X respecte del pla. Sigui A la matriu de canvi de basecorresponent, matriu ortogonal, ja que correspon a un canvi entre bases ortonormals.

    Expressem el punt P en el nou sistema de coordenades, es a dir, P = AT (P Q).

    En calculem el simetric, es a dir, P = S12(P ), encara expressat en el nou sistema decoordenades.

    Expressem el simetric en lantic sistema de coordenades: P = AP +Q

    Per tant, resultara

    S(P ) = A(S12(AT (P Q))) +Q = (AS12A

    T )(P ) + (Q (AS12AT )(Q)).

    Es veuen clarament la part lineal i la part de translacio de lafinitat.

    Tambe es pot resoldre el problema per concatenacio de transformacions.

  • 8 Transformacions afins 3D 337

    8.7 Simetria central

    El cas de la simetria central o simetria respecte dun punt C es del tot analeg al que es vaveure en el cas bidimensional, de manera que es pot reproduir (en context tridimensional) lalnia argumental shi es va utilitzar. Es pot comprovar que sarriba a les mateixes formules:P = P + 2C. Per tant, la simetria central SC tambe es pot expressar com SC = T2C (I).Encara es pot veure duna altra manera: considerant en primer lloc la simetria central SOrespecte de lorigen. En aquest cas es SC = TC SO TC . A mes, la simetria central respectede lorigen es pot expressar com a composicio de tres simetries especulars respecte dels plansde coordenades, ja que de la sequencia

    (x, y, z) (x, y, z) (x,y, z) (x,y,z)

    es deriva SO = S12 S13 S23.

    8.8 Estrategia de resolucio de problemes per concatenaciode transformacions

    Vegem com les transformacions poden utilitzar-se com a eines per obtenir parametritzacions decorbes o de superfcies.

    Exemple 8.2. Parametritzeu el cilindre de radi R i eix la recta r : x = y, z = 0. El procedimentestandard utilitzat fins ara es el dobtenir parametritzacions de superfcies o corbes per canvi desistema de coordenades. Ara be, sobserva que el cilindre es pot obtenir per la rotacio positivarespecte de leix Oz de 45 sobre el cilindre C0 de radi R i deix Ox, es a dir y2 + z2 = R2. Laidea es parametritzar C0 i, posteriorment, efectuar la rotacio indicada. Per parametritzar C0,escollirem els parametres naturals, es a dir x i langle polar de la circumferencia intersecciodel cilindre i el pla x = 0, amb origen y+ i amb recorregut antihorari vist des de x+. Aleshoresla parametritzacio corresponent de C0 es

    C0 :

    x(, x) = xy(, x) = R cos z(, x) = R sin

    , 0 2, < x <

    Ara apliquem la rotacio dangle = 45:

    x(, x)y(, x)

    z(, x)

    =

    cos sin 0sin cos 0

    0 0 1

    x(, x)y(, x)

    z(, x)

    don en resulta una parametritzacio (amb parametres x, ):

    x(, x) =22 x

    22 R cos

    y(, x) =22 x+

    22 R cos

    z(, x) = R sin

    Exemple 8.3. Suposem que es tracta de construir el cilindre de radi R i deix la recta r quepassa per lorigen i es de vector director e = (1, 1, 1). Es tractara de resoldre el problema conca-tenant transformacions, concretament girs respecte dels eixos de coordenades, que converteixinel cilindre de les mateixes caracterstiques, pero deix Oz, en el cilindre que ens interessa. Es-sencialment es tracta de saber convertir leix Oz en leix r. Hi ha mes duna possibilitat. Un

  • 338 Geometria per a la informatica grafica i CAD

    esquema adequat ens permet veure que si calculem langle que formen el vectors e3, e i si es langle que forma amb e1 la projeccio de e sobre el pla z = 0, es a dir, langle que formene1, (1, 1, 0), que resulta ser 45

    , aleshores es pot fer la concatenacio de rotacions seguent: enprimer lloc, la rotacio Ry transforma Oz en la recta r

    , que es sobre el pla xz i que formaraun angle amb Oz. Qualsevol rotacio posterior de r respecte de Oz transformara r en unarecta r que, per conservacio dangles, seguira formant angle amb Oz; nomes cal fer la ro-tacio adequada per tal que r sigui r, es a dir, Rz . Per tant, la concatenacio R

    z R

    y resol el

    problema.

    Si el cilindre x2 + y2 = R2 es donat com a col.leccio de polgons, aplicarem la concatenacioanterior i obtindrem un nou objecte com a llista de polgons. Si estem interessats a obtenir unaparametritzacio, podem fer-ho a partir duna parametritzacio del cilindre x2 + y2 = R2:

    x(, z)y(, z)

    z(, z)

    =

    cos 0 sin0 1 0

    sin 0 cos

    cos sin 0sin cos 0

    0 0 1

    R cos R sin

    z

    8.9 Exercicis

    1 Obteniu les equacions de la simetria respecte del pla x+ y + z = 0.

    2 Trobeu les equacions de la rotacio dangle /3 respecte de la recta x = y = z. Preciseu lespossibilitats.

    3 Trobeu les equacions duna simetria respecte del pla x+y = 0, seguida duna rotacio dangle /4respecte de leix perpendicular al pla i que passa per lorigen de coordenades.

    4 Donades les rectes {2x + 3y 3z = 5

    y + z = 1

    {x + 2y z = 3

    2x + 4y z = 9

    a) Proveu que es tallen en un punt i trobeu lequacio del pla que les conte.

    b) Trobeu el simetric respecte aquest pla del punt (3, 1,1).

    c) Trobeu lequacio de la simetrica de la recta

    {x + y = 1,

    y + 2z = 4..

    5 Sigui r la recta determinada pels plans 1 : y +3z = 0 i 2 : y +

    3z = 0. Trobeu la

    imatge del punt (2, 4, 5) per la rotacio deix la recta r i dangle el doble de langle que formen elsplans 1 i 2.

    6 Trobeu les equacions de la rotacio respecte de la recta interseccio dels plans 1 i 2, i dangle elque formen els plans 3 i 4, essent

    1 : 4x y + z = 0 2 : y z = 0

    3 : x+ 2y z = 4 4 : y z = 1

    7 En una referencia cartesiana, obteniu les equacions de la simetria respecte de la recta x = 0, x = z.

    8 Considereu la recta r :

    {x y + z = 3

    y + z = 1

    a) Trobeu les equacions de la simetria respecte de r.

    b) Trobeu la imatge del pla : x+ 3y z = 1.

    c) Trobeu la imatge de la recta

    {2x + y = 0

    z = 1.

  • 8 Transformacions afins 3D 339

    9 Calculeu les equacions de la simetria central respecte del punt A = (1, 0,1).

    10 Quina isometria es la composta de les tres simetries axials respecte els eixos x, y i z? Estudieusi el resultat depen de lordre de la composicio.

    11 Trobeu les equacions de les rotacions seguents:

    a) Respecte la recta y 1 = x = z + 1 i dangle /3.

    b) Respecte la recta

    {z = 1

    x y = 2i dangle /4.

    12 Donada la simetria central respecte del punt (1, 4,2), trobeu la imatge de

    a) lesfera x2 + y2 + z2 8x+ 4y + 6z + 4 = 0

    b) la recta x+23 =y13 =

    z+32

    c) el pla 2x 3y + 4z = 5

    13 Obteniu les equacions del gir (positiu) dangle /4 i deix la recta x 1 = y 1 = z.

    14 Considereu el cilindre circular recte, de radi R, altura h, dipositat per una de les bases sobre el pla : x+ y+ z 3 = 0, contingut en el semiespai que no conte lorigen, dentre els dos determinatspel pla, i deix perpendicular al pla passant pel punt (1, 1, 1). Obteniu-ne una parametritzacioper dos metodes diferents:

    a) Per canvi de sistema de coordenades.

    b) Per concatenacio de transformacions afins.

    15 Obteniu les equacions del gir positiu dangle /4 respecte de leix donat per la recta

    x 2 =y 1

    2=

    z

    3.

    16 Obteniu per canvi de sistema de coordenades les equacions de la rotacio

    a) dangle /4

    b) respecte de leix que passa per P0 = (1, 0, 0) i es de direccio u = (1, 2, 2)

    c) que transforma lorigen en un punt del semiespai z 0

    17 Obteniu, per canvi de sistema de coordenades, les equacions de la simetria especular respecte delpla x+ y + z 3 = 0.

    18 Parametritzeu la superfcie de revolucio generada en girar a lentorn de leix Oz la corba (gene-ratriu) donada per {

    x = yz = sin x

    per a 0 x 2.

    19 Sigui 0 la corba espiral situada a z 0, sobre el con x2 + y2 = z2, que es projecta perpendicu-

    larment a z = 0 sobre una espiral dArquimedes (r = a, a > 0). En aquesta posicio anomenemeix de lespiral leix Oz, i linici lorigen de coordenades. Considerem una copia de 0 a laposicio seguent:

    a) linici de lespiral es al punt A = (2, 3, 0),

    b) lespiral es continguda al semiespai z 0,

    c) leix de lespiral es la resta r que passa per A i esta situada com indica la figura.

  • 340 Geometria per a la informatica grafica i CAD

    Obteniu una parametritzacio de ; el problema sha de resoldre per concatenacio de transfor-macions afins.

    20 Considerem els cilindres C1 : x2 + y2 = R2 i C2, resultant defectuar una rotacio positiva de 45

    a lentorn de leix Oz sobre el cilindre y2 + z2 = R2. Obteniu una parametritzacio de les corbesdinterseccio dels cilindres C1, C2.

    21 Considerem el cilindre de radi R, altura h, deix leix de coordenades Oz, amb la base a z = 0i contingut al semiespai z 0. Sigui P el punt del cilindre daltura h0 i angle polar (en z = 0) = 0. Es considera el pla tangent al cilindre per aquest punt i es vol construir una cardioideC1 de centre P copia de la cardioide C0 en el pla donada per r = a(1+ cos t), de tal manera quela generatriu per P tingui el mateix paper per a C1 que leix Oy en el pla te per a C0. Obteniuuna parametritzacio de C1; si hi ha mes duna solucio, indiqueu clarament quina trieu. Resoleuel problema per composicio de transformacions afins.

    22 Es considera el cilindre C0 daltura h, radi R, eix Oz, amb la base sobre z = 0 i contingut enz 0. Transformeu C0 per concatenacio de transformacions afins en un cilindre C1 dipositattangencialment sobre el pla x + y + z = 3, contingut al semiespai que no conte lorigen i detal manera que el centre de la base inferior es projecti ortogonalment al pla sobre el centre Ddel triangle A = (3, 0, 0), B = (0, 3, 0), C = (0, 0, 3), i que leix del nou cilindre sigui paral.lel ala recta que passa per D,B. Formuleu una sequencia de transformacions afins que resolgui elproblema; si hi ha mes duna solucio, indiqueu quina trieu.

    c: Els autors, 1999; Edicions UPC, 1999.