Determinació dels angles D'euler

 
 

Tenim un objecte com el descrit en el fitxer    p1_escena.pov

Per a visualitzar-lo, executeu les comandes:

povray +W640 +H480 +a0.2 p1_escena.pov
xv p1_escena.png
 

Noteu que hem associat a aquest objecte un sistema de referencia fixat a ell (eixos 1, 2, 3,
de color vermell, verd, blau). Es vol fer rotar l'objecte i el sistema de referència associat
des de la orientació inicial en t=0 fins a la orientació en t=1 especificada per una
matriu de rotació de valors:
 

0.53632    -0.30202   0.78813 1a fila
0.68301     0.70388  -0.19506 2a fila
-0.49583    0.64292   0.58379 3a fila
 

els elements de la qual estan emmagatzemats per columnes en el fitxer   rijxcolumnes

L'exercici consisteix en trobar quines 3 operacions de rotacio elementals consecutives
R1(z,fi_z) R2(y,fi_y) R3(x,fi_x) ens proporcionaran la rotacio desitjada, i realitzar una
animació que passi de forma continua  de la orientació inicial (fi's = 0) en t=0 fins als
valors calculats en t=1.

Per a això seguiu els següents punts:

1) Determineu quina es la matriu de rotació resultant de la composició de les 3 operacions
de rotació elementals esmentades.

2) Imposant que els diferents elements r_ij donats coincideixin amb els resultants de la
composició, trobeu les equacions que ens relacionen r_ij amb fi_x, fi_y, fi_z.

3) Escriviu un algorisme que permeti aillar  fi_z,  fi_y,  fi_x a partir dels valors numèrics dels
coeficients r_ij (vegeu punt 5).

4) Implementeu l'algorisme en un programa que llegeixi el fitxer rijxcolumnes
i volqui fi_x, fi_y, fi_z en el fitxer fisef.out (separats per comes). Si us és més fàcil,
podeu volcar el contingut del fitxer rijxcolumnes en un altre fitxer dadesrij
en el format que vulgeu (per exemple, amb els elements en linies separades).

5) executeu el programa, generant el fitxer fisef.out

(Noteu que aquest fitxer ja existeix, de manera que podeu verificar si l'algorisme us funciona
correctament. Si és així, al final podreu realitzar el punt 10).

6) Examineu el fitxer p1_verifica.pov:

#fopen Rij "rijxcolumnes" read
#read (Rij,r11,r21,r31,r12,r22,r32,r13,r23,r33)

#fopen Fis "fisef.out" read
#read (Fis,f1z,f1y,f1x)

Noteu que utilitza la matriu de rotació per a representar en gris la posicio dels
eixos rotats (objecte  SRob,  Sistema de Referencia objectiu):

// Escena

object {SRob matrix < r11,r21,r31,r12,r22,r32,r13,r23,r33, 0.0, 0.0, 0.0 > }

//

i les tres rotacions que heu calculat R1(z,fi_z) R2(y,fi_y) R3(x,fi_x)
per a  representar l'objecte i el sistema de referencia fixat a ell:
 

object{Roda_dentada rotate f1x*x rotate f1y*y rotate f1z*z}

object {SRef rotate f1x*x rotate f1y*y rotate f1z*z}

Fixeu-vos que la primera transformacio sobre les coordenades dels
diferents punts que constitueixen l'objecte es R(x), la segonaR(y) i
la darrera R(z) (Ha de ser aixi?). Visualitzeu l'escena amb les comandes

povray +W640 +H480 +a0.2 p1_verifica.pov
xv p1_verifica.png

Si tot ha anat bé, els eixos en gris estaran continguts dins dels eixos en color
(si la orientacio generada per les rotacions elementals que heu determinat
coincideix amb la de la matriu de rotacio donada).

7) En un directori nou, genereu una sequencia d'imatges entre t=0 i t=1,
substituint

rotate f1x*x rotate f1y*y rotate f1z*z  per
rotate Factor*f1x*x rotate Factor*f1y*y rotate Factor*f1z*z

on Factor varia de 0 a 1 a mesura que avança la sequencia
(ho teniu preparat en el fitxer p1_anim.pov p1_anim.ini).
Modifiqueu els paràmetres convenients continguts en p1_anim.ini
i executeu

povray +W640 +H480 +a0.2 p1_anim.ini
 

8) examineu la seqüencia de imatges png amb el programa xv. Prement la barra d'espai
passeu d'una imatge a la seguent. Genereu un fitxer mpg amb la comanda:

convert p1*.png p1.mpg

podeu visualitzar-la:

/home/share/assig/fmar/mpeg_player/mpeg_play p1.mpg

9) En aquesta animació, hem fet variar els tres angles seguint una funció lineal amb el
temps  (clock varia uniformement entre els valors definits a p1_anim.ini):

// #declare Factor=sin(pi*clock)*sin(pi*clock);
#declare Factor=clock;

Repetiu l'animació fent que la dependencia de la rotació amb el temps sigui del tipus sin^2
en lloc de lineal, comentant i descomentant les declaracions de la variable Factor en el
fitxer p1_anim.pov .

10) Repetiu el procediment amb la rotació que teniu especificada en el fitxer   final/rijxcolumnes.

Mostreu la visualització de totes les seqüències.