En la animación y los juegos, se puede ver que muchos objetos se mueven de un punto a otro de forma lineal. Pero después de usar la función Easing, la forma de progresar del objeto puede tomar una forma diferente, natural e interesante.
Las funciones de aceleración son la tasa de cambio de un parámetro a lo largo del tiempo. Son ese tipo de ecuaciones que se mueven lentamente al principio y se aceleran y se ralentizan al final. Estos conjuntos de ecuaciones están tomados del libro y la página web de Robert Penner.
El método easyOutElastic() se utiliza para la relajación elástica.
Sintaxis:
easeOutElastic(t, b, c, d)
Parámetros: Este método acepta cuatro parámetros como se mencionó anteriormente y se describe a continuación:
- t: este parámetro contiene el tiempo especificado cuando comenzará la animación. Por ejemplo, si el valor de t es 0, significa que la animación acaba de comenzar.
- b: Este parámetro mantiene la posición inicial especificada del objeto en el eje x. Por ejemplo, si el valor de b es 10, significa que la posición inicial de los objetos en la coordenada x es 10.
- c: este parámetro contiene el cambio de valor especificado para el objeto. Por ejemplo, si el valor de c es 30, significa que el objeto debe moverse 30 a la derecha, terminando en 40.
- d: este parámetro contiene la duración especificada de todo el proceso. Por ejemplo, si el valor de d es 2, significa que el objeto tiene 2 segundos para realizar este movimiento de 10 a 40.
Valor devuelto: este método devuelve la posición relajada del objeto, es decir, la posición del objeto en un momento específico.
Ejemplo 1:
HTML
<!DOCTYPE html> <html> <head> <!-- Adding the FabricJS library --> <script src= "https://cdnjs.cloudflare.com/ajax/libs/fabric.js/3.6.2/fabric.min.js"> </script> </head> <body> <script type="text/javascript"> // Initializing easeOutElastic() function function easeOutElastic (t, b, c, d) { var s = 1.70158; var p = 0; var a = c; if (t == 0) return b; if ((t /= d) == 1) return b + c; if (!p) p = d * .3; if (a < Math.abs(c)) { a = c; var s = p / 4; } else var s = p / (2 * Math.PI) * Math.asin(c / a); return a * Math.pow(2, -10 * t) * Math.sin((t * d - s) * (2 * Math.PI) / p) + c + b; } // Calling the easeOutElastic() function over // the specified parameter values console.log(fabric.util.ease.easeOutElastic(1, 2, 3, 4)); </script> </body> </html>
Producción:
4.734834957055044
Ejemplo 2:
HTML
<!DOCTYPE html> <html> <head> <!-- Adding the FabricJS library --> <script src= "https://cdnjs.cloudflare.com/ajax/libs/fabric.js/3.6.2/fabric.min.js"> </script> </head> <body> <script type="text/javascript"> // Initializing easeOutElastic() function function easeOutElastic (t, b, c, d) { var s = 1.70158; var p = 0; var a = c; if (t == 0) return b; if ((t /= d) == 1) return b + c; if (!p) p = d * .3; if (a < Math.abs(c)) { a = c; var s = p / 4; } else var s = p / (2 * Math.PI) * Math.asin(c / a); return a * Math.pow(2, -10 * t) * Math.sin((t * d - s) * (2 * Math.PI) / p) + c + b; } // Initializing the parameters with its values var t = 5; var b = 10; var c = 40; var d = 12; // Calling the easeOutElastic() function over // the specified parameter values console.log(fabric.util.ease.easeOutElastic(t, b, c, d)); </script> </body> </html>
Producción:
51.70617003103307
Publicación traducida automáticamente
Artículo escrito por Kanchan_Ray y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA