Envoyer un message instantanée à gvasseur58 avec...
Après avoir appris à rendre plus plus vivantes vos interfaces grâce aux interpolations, avec la série de billets que je vous propose, vous doterez Lazarus de classes spécifiques aux fonctions d'easing. Votre EDI préféré saura alors imiter certaines animations présentes dans d'autres langages de programmation ou frameworks.
Les travaux réalisés dans les billets précédents vont fournir la matière à la hiérarchie de classes que nous allons mettre en place.
Nous allons tout d'abord
L'interface de l'application de test
Maintenant que nous avons fait le tour des fonctions d'easing nécessaires, il est temps de proposer une application de test : nous allons enfin voir ces fonctions à l’œuvre ! L'objectif de l'application sera simple : des boutons feront l'aller et retour d'une zone de déplacement selon la fonction d'easing qui leur sera affectée.
Pour un aperçu efficace des courbes d'easing, nous allons créer une application sans prétention dont l'interface
Les fonctions avec effet d'élastique, aller-retour ou rebond produisent les effets d'easing les plus spectaculaires. Ce sont aussi elles qui font appel à des constantes énigmatiques, mais qui trouvent leur origine dans des calculs complexes très peu (voire pas) documentés : il faudra par conséquent accepter ses constantes parfois modulables et se réjouir de leur effet !
Les fonctions à effet d'élastique
Bien sûr, les fonctions de la catégorie Elastic sont plutôt complexes.
Après les degrés de polynômes et les fonctions trigonométriques, les fonctions exponentielles et celles fondées sur l'équation d'un cercle complèteront l'arsenal de nos outils d'easing.
Si l'on désire encore accentuer l'effet d'inertie comme entrevue avec les fonctions à base de polynômes, rien ne vaut l'exponentielle à base 2.
Prenons le cas de la fonction d'easing de type In. L'idée est d'appliquer à 2 un exposant variant entre 10 fois la fraction d'interpolation effectuée
Continuons à explorer quelques fonctions utiles pour les fonctions d'easing que nous cherchons à implémenter.
Les fonctions à base de fonctions sinusoïdales font appel, selon le besoin, au sinus ou au cosinus de la valeur en cours à appliquer au point d'arrivée. Le cosinus sera utilisé pour l'accélération positive alors que le sinus le sera pour la décélération.
En fait, ce qui est intéressant dans ces fonctions, c'est qu'elles sont périodiques (T = 2 * Pi). Dans l'intervalle