Il motivo per cui vi sono entrambi, è perché la moltiplicazione della matrice deve essere eseguita in un certo ordine per ottenere il risultato corretto (come forse già sapete).
La sequenza di traslazioni/rotazioni/scale viene eseguita in in ordine inverso durante la digitazione.
Quindi, se si fa qualcosa di simile:
Camera.rotate(15, 0, 0);
Camera.scale(.5f, .5f, .5f);
Camera.translate(70, 70, 70);
Stai prima traducendo 70,70,70 poi ridimensionamento del 50% in tutte le direzioni, quindi la rotazione di 15 gradi attorno all'asse X.
Quindi Matrix ha un pre e post translate (beh, pre e post tutto), perché forse si vuole effettivamente ruotarlo prima di 15 gradi e poi tradurlo, e infine ridimensionarlo.
In modo che risponda al pre e post traduce. Ora il motivo per cui Camera ha una rotazione diritta e la traduzione è per le persone che sanno come funziona già (come me!), Quindi non uso mai Matrix o Camera per quella materia, perché posso semplicemente fare le mie rotazioni e traduzioni direttamente sulla tela. Puoi anche fintanto che sai che le traduzioni, le scale e le rotazioni sono fatte in ordine inverso.
Inoltre, se sai cosa ti ho detto, ti dà più potere. È possibile eseguire una sequenza di 10 matrici senza circondarle in più oggetti Matrix per ciascuna di esse (ad esempio, si desidera eseguire un movimento oscillatorio che oscilla verso l'esterno E ruota attorno al centro per simulare la forza centrifuga). Ciò dovrebbe essere fatto con più rotazioni e traslazioni (circondate da più oggetti Matrix passati l'uno nell'altro), ma se sai come funziona ogni traduzione, puoi semplicemente fare una serie di .translate(), .rotate(), e .scale().
Questa informazione è particolarmente utile in caso di grafica 3D, perché è in questo caso che queste matrici danno mal di testa alle persone.
Spero che questo aiuti!
Mi guidi a una documentazione che hai trovato questo fatto? – hasanghaforian
puoi per favore fornire un link che supporti la tua risposta? –
Oh mio. È passato molto tempo da quando ho scritto questo, e suona arrogante a dir poco. La documentazione può essere trovata su wikipedia, in particolare: http://en.wikipedia.org/wiki/Transformation_matrix#Composing_and_inverting_transformations "Si noti che la moltiplicazione viene eseguita nell'ordine opposto dalla frase inglese: la matrice di" A seguita da B "è BA, non AB." –