pkg.re/essentialkaos/ek.10@v12.41.0+incompatible/easing/quad.go (about) 1 package easing 2 3 // ////////////////////////////////////////////////////////////////////////////////// // 4 // // 5 // Copyright (c) 2022 ESSENTIAL KAOS // 6 // Apache License, Version 2.0 <https://www.apache.org/licenses/LICENSE-2.0> // 7 // // 8 // ////////////////////////////////////////////////////////////////////////////////// // 9 10 // QuadIn accelerating from zero velocity 11 // https://easings.net/#easeInQuad 12 func QuadIn(t, b, c, d float64) float64 { 13 if t > d { 14 return c 15 } 16 17 t /= d 18 19 return c*t*t + b 20 } 21 22 // QuadOut decelerating to zero velocity 23 // https://easings.net/#easeOutQuad 24 func QuadOut(t, b, c, d float64) float64 { 25 if t > d { 26 return c 27 } 28 29 t /= d 30 31 return -c*t*(t-2) + b 32 } 33 34 // QuadInOut acceleration until halfway, then deceleration 35 // https://easings.net/#easeInOutQuad 36 func QuadInOut(t, b, c, d float64) float64 { 37 if t > d { 38 return c 39 } 40 41 t /= d / 2 42 43 if t < 1 { 44 return c/2*t*t + b 45 } 46 47 t-- 48 49 return -c/2*(t*(t-2)-1) + b 50 }