Mi permetta di riformulare la tua domanda:
è necessario interpolare tra R0 e R1.
E propone di farlo come:
Ri = AR0 + (1-a) R1
non funzionerà bene, come Victor citato nel suo/la sua risposta: si otterrà deformazioni di volume e di inclinazione.
matematicamente (nel contesto della geometria 3d), l'aggiunta non ha molto senso: cosa significa aggiungere due matrici di traduzione?
una soluzione stabilita è interpolare come:
Ri = (R1 * (inverso (R0)))^a * R0
dove definiamo R^a come un'operazione che ci dà una rotazione sul vettore [kx, ky, kz] di un grado * theta.
quindi quando a = 0, Ri = R0; quando a = 1, Ri = R1. Questo rende l'interpolazione basata sulla moltiplicazione, che è più naturale nel contesto della geometria 3d.
Ora la parte difficile su come rappresentare l'operazione R^a. Risulta che usando quaternion representation di R ci consente di rappresentare l'operazione R^a. basato sul documento di Ken Shoemake animating rotation with quaternion curves
fonte
2014-12-02 17:20:56
Come si memorizza la "posizione" di un oggetto in una matrice di trasformazione? È una fotocamera? Maggiori informazioni richieste – Jacob