Originariamente inviato da shmk
Infatti il codice non è mio

Cmq l'oggetto da muovere è una mesh poligonale di un programma per la realizzazione di grafica 3d.

L'unica cosa che so è che l'oggetto, data la matrice di trasformazione nel primo post, si ruota di 5° sulla X.
E vorrei capire se c'è una formula per ricavare il numero "5°" da quella matrice.
No non funziona così.

ti posto alcuni link su cui studiare e poi "capire" come funziona il codice che stai vedendo:

matrici:
http://www.clickitaliansoftware.net/...rici/index.htm

vettori:
http://www.clickitaliansoftware.net/...tori/index.htm

dici che si ruota sull'asse x di 5° ma non è così che funziona.
Ti faccio un esempio:

Una rotazione su uno dei 3 assi, (non hai specificato cosa è usato nel code, "manuale" ,Opengl o directx), per esempio in directx

D3DXMatrixRotationX(&mat, angle);
angle è un float < o > angle l'oggetto ruota a sn o dx ma non di tot gradi in quanto è una rotazione "non arbitraria".

Per usare uno spostamento in gradi devi per esempio fare un dotproduct è il risultato lo devi convertire in gradi in quanto il risultato è sempre in radianti.

Ti ripeto non è una cosa semplice è un'argomento vastissimo.

posta un pò di code per rendere conto di cosa "si usa" per effettuare gli spostamenti per poterti aiutare... così non è semplice da capire per chi legge.

La traslazione è lo spostamento dell'oggetto della sua posizione nello spazio 3d.
la rotazione è appunto la rotazione nel punto di posizione senza spostamento.
La scalatura è il ridimensionamento di una mesh di default è:
D3DMatrixScaling(&mat, 1.0f, 1.0f, 1.0f);// dimensione reale dell'esportazione della mesh.x con il tool con cui è stata creata.
D3DMatrixScaling(&mat, 2.0f, 2.0f, 2.0f) in questo modo la mesh è circa il doppio nel render.

per aiutarti dovresti postare un pò di code per capire che tecnica si usa.

Poi leggo "C" nel titolo... forse non è nè OGL nè directx!