Nonostante il lungo titolo, la mia domanda è abbastanza semplice. Supponiamo di avere un cubo nello spazio 3D e di volerlo ruotare lungo i tre assi in base all'insieme di istruzioni fornite da un utente o altrove nel programma. Come faresti a semplificare, se vuoi, quell'insieme di rotazioni?
Per semplicità, useremo la notazione implicata nella rotazione di un cubo di Rubik. (E anche perché è quello che sto programmando .. Ma non è importante.) Quindi, X sarebbe una rotazione in senso orario lungo l'asse X, X 'sarebbe una rotazione in senso antiorario lungo l'asse X, e X2 sarebbero due rotazioni di rotazione in senso orario lungo l'asse X.
Ora, supponiamo di avere un set di istruzioni X Y X'
. Quel set di istruzioni ha fatto la stessa cosa che avrebbe fatto la singola istruzione di Z
. Oppure, in un caso più semplice, se avessi X X'
o X2 X2
, quelle rotazioni si annullano.
La mia domanda è, qual è il modo migliore - dal punto di vista della programmazione - per semplificare queste serie di istruzioni?