Re:Chiarimenti sugli script

#177940

LeleDaRevine
Partecipante
  • Veterano Argento
  • ★★★★
  • Post sul forum 3309

Proverò anche quello!

Intanto però sono riuscito a trovare le spiegazioni per quanto riguarda le matrici per le rotazioni!

Qui http://en.wikipedia.org/wiki/Rotation_matrix una spiegazione puramente matematica, chi ci capisce qualcosa è bravo!

Qui invece una cosa legata proprio al game engine, e direi che è un’ottima spiegazione, e c’è anche un file da scaricare!

http://sites.google.com/site/socialstor … rix-basics

Provo a spiegaro a mie parole, per gli italiani!

Fate conto che il vostro oggetto sia tutto contenuto in un CUBO che ha come lati proprio gli assi, e che questi assi siano lunghi 1, come in effetti dovrebbe essere la scala dell’oggetto.

Ogni tris di numeri rappresenta le coordinate della punta di ogni asse, riferite all’origine degli assi. Per cui il primo tris rappresenta le coordinate della punta dell’asse X, il secondo della punta dell’asse Y e il terzo dell’asse Z. Le coordinate sono riferite al sistema degli assi, per cui, con l’oggetto allineato agli assi globali, avremo che la punta dell’asse X si trova a (x1, y0, z0). La punta dell’asse Y a (x0, y1, z0). Quella dell’asse Z a (x0, y0, z1). Spero fin qui sia chiaro.

Ora, se vogliamo ruotare l’oggetto sull’asse Z di +90 gradi, dobbiamo prendere gli altri due assi e spostarli, in modo che l’asse X prenda il posto dell’asse Y, e l’asse Y il posto dell’asse X, ma in negativo, perchè la posizione reciproca degli assi deve sempre essere quella. Quindi, in questo caso, le coordinate della punte degli assi diventano queste: X(0,1,0) Y(-1,0,0) Z(0,0,1).

Se invece di angoli retti vogliamo ruotare di angoli diversi, allora entra in campo la trigonometria, perchè, per non deformare il cubo che contiene il nostro oggetto, e quindi la sua scala, dobbiamo fare in modo che la lunghezza degli assi sia sempre la stessa, ovvero 1. Quindi, per calcolare le coordinate dobbiamo usare il seno e il coseno dell’angolo. Per questa parte vi rimando al documento sopra segnalato, perchè non vorrei inoltrarmi in spiegazioni non alla mia portata.

Solo un consiglio per chi si trova davanti a problemi di trigonometria: io parto sempre da questa formula tan = sen/cos. Da questa si possono ricavare tutte le altre equazioni per calcolare angoli e triangoli che si presentano nello spazio. E non dimenticate il teorema di Pitagora! 😉

Voglio aggiungere una cosa, ripresa sempre dal documento sopra: un conto è una rotazione su un solo asse. Più difficoltosa la rotazione su più assi. Spero che qualche matematico ci possa spiegare un po’ in parole povere e con qualche esempio quanto detto nel doumento a questo riguardo.

E questo è quanto riguarda l’assegnazione di un angolo ad un oggetto. Mi rimane da capire come ricavare l’angolo di un oggetto. Come estrapolare i valori della matrice di un singolo asse dell’oggetto?