////////accueil ///////// liens /////////   contact
L'interpolation SLERP
 
On peut déplacer V  par les touches de direction UP, DOWN, RIGHT, LEFT. La touche "a" arrête / initie le mouvement calculé de V.

Source Code
Built with Processing

 

 

introduction

Un mouvement SLERP est une interpolation sur une sphère . Elle permet d'animer agéablement un objet, d'une position de départ à une position d'arrivée.

approche par les symétries orthogonales et description de la figure

Le cube blanc est l'objet de référence. Ses images par des rotations, seront les objets de départ, d'arrivée, et le mobile.

  • l'objet de départ est le cube bleu, image du cube blanc dans la rotation d'axe (OU) , composée des symétries orthogonales S2°S1
  • l'objet d' arrivée est le cube vert, image du cube blanc dans la rotation d'axe (OV) , composée des symétries orthogonales S3°S1
  • l'objet en mouvement est le cube rouge, image du cube blanc dans la rotation d'axe (OM) , composée des symétries orthogonales S4°S1. La position de ce cube rouge dépend d'un paramètre t variant de 0 à 1.
  • La rotation S4°S2 fait le cube bleu dans le cube rouge . En effet S4°S2=(S4°S1)°(S1°S2) et S1°S2 (qui est la rotation inverse de S2°S1) fait passer le cube bleu au cube blanc, alors que, S4°S1fait passer le cube blanc au cube rouge
  • quand t=0 S4 est confondue avec S2 , S2°S1 et S4°S1 sont des rotations égales et le cube rouge es confondu avec le bleu.
  • quand t=1 S4 est confondue avec S3 , S3°S1 et S4°S1 sont des rotations égales et le cube rouge es confondu avec le vert.

Le problème est donc de définir le plan de la symétrie orthogonale S4 pour tout t , compris entre 0 et 1. Un solution très simple est placer un point M sur le segment [OU] tel que M soit le barycentre de (U,t) et de (V,t-1) et de définir l'angle de S4 avec S1 comme une interpolation de phi et psi les angles de plans (S1,S2) et (S1,S3) . Cette solution n'est pas complètement satisfaisante car le mobile semble accélérer puis décélérer. Le déplacement SLERP donne à la droite OM une vitesse angulaire constante. Mais quel angle s'agit-il ?

Les plans des symétries S2 et S3 se coupent suivant la droite OW, suivant un angle diedre theta . (attention théta n'est pas, sauf cas particulier l'angle UOV). Sur la figure le plan de S4 tourne autour de OW. C'est donc cet angle de rotation, qui est l'angle diedre des plans S2, S4 qui doit varier linéairement. Il prendra la forme t*theta avec t compris entre 0 et 1.

On obtient ainsi ,la rotation S4*S1 d' axe (OM), droite contenue dans un plan tournant autour de (OW) à vitesse angulaire constante.

l'entrée en scène des quaternions

  • soit p le quaternion représentant S2°S1 ,son axe est (OU), son conjugué p* représente S1°S2
  • soit q le quaternion représentant S3°S1 son axe est (OV)
  • soit g le quaternion représentant S3°S2 son axe est (OW). Comme (S3°S2)°(S2°S1)= S3°S1 alors gp=q .On peut conclure que g=qp* avec p* le conjugué de p
  • l'angle du quaternion g c'est l'angle theta des plans de S2 et S3 .On peut donc écrire g sous forme de couple g = [cos(theta), sin(theta)w]w est un vecteur normé de (OW)
  • Nommons g(t) le quaternion dont l'axe est celui de g, (OW), et dont l'angle est une fraction de théta , theta*t .On peut donc écrire g(t) = [cos(theta*t),sin(theta*t)w].
  • g(t) est noté dans la littérature quaternionique (qp*)t
  • Si l'on fait tourner de theta*t le plan de S2 autour de w, on obtient un plan S4 , qui fait de g(t) le quaternion associé à S4°S2.
  • On pose alors que le cube rouge est l'image du bleu par la rotation S4°S2.
  • Pour chaque t, la rotation composée (S4°S2)°(S2°S1) qui amène d'abord le cube blanc fixe sur le cube bleu puis celui-ci sur le cube rouge, est S4°S1 .Cette rotation à pour axe l'intersection des plans de S4 et S1 , (OM). Elle est liée au quaternion g(t)p= (qp*)tp
  • Ainsi les 7 caractères de l'expression (qp*)tp suffisent (?) à décrire l'agitation du cube rouge !

 

version du 08/06/2004