效果图

归位(back)

表达式代码与注释

var s = 1.70158; ///< 用于 "归位" 的超越量/// @note 归位函数
function outBack(t, b, c, d) {if (s == null)s = 1.70158;return c * ((t = t / d - 1) * t * ((s + 1) * t + s) + 1) + b;
}/// @note 实际调用弹性函数的缓动函数
function easeAndWizz() {var n = 0;/// @note 确保关键帧帧数是大于 0 的if (numKeys > 0) {n = nearestKey(time).index; ///< 获取最近的关键帧索引if (key(n).time > time) { ///< 如果最近的关键帧所处时间在当前时间之后(即时间还没到)n--; ///< 则取前一个关键帧的索引}}try {/// @note 前后两个关键帧var key1 = key(n);var key2 = key(n + 1);} catch (e) {return null;}/// @note 确定关键帧需要的数据维度var dim = 1; ///< 该属性至少是一维的try {key(1)[1]; ///< 数据有第二维度dim = 2;key(1)[2]; ///< 数据有第三维度dim = 3;} catch (e) { }t = time - key1.time; ///< 当前时间和前一个关键帧的时间差d = key2.time - key1.time; ///< 前后俩关键帧的时间差/// @note 计算关键帧上的属性,用于后期的弹性计算/// 一维sX = key1[0];eX = key2[0] - key1[0];/// @note 二维if (dim >= 2) {sY = key1[1];eY = key2[1] - key1[1];/// @note 三维if (dim >= 3) {sZ = key1[2];eZ = key2[2] - key1[2];}}if ((time < key1.time) || (time > key2.time)) {return value;} else {/// @note 进行归位计算val1 = outBack(t, sX, eX, d);/// @note 同样分为三个维度进行计算switch (dim) {case 1:return val1;break;case 2:val2 = outBack(t, sY, eY, d);return [val1, val2];break;case 3:val2 = outBack(t, sY, eY, d);val3 = outBack(t, sZ, eZ, d);return [val1, val2, val3];break;default:return null;}}
}
(easeAndWizz() || value);

AEJoy —— 表达式之归位(复位)模拟详解【JS】相关推荐

  1. 详解JS原型链与继承

    详解JS原型链与继承 JavaScript 目录 摘自JavaScript高级程序设计: 概念 确定原型和实例的关系 原型链的问题 借用构造函数 组合继承 原型继承 寄生式继承 寄生组合式继承 new ...

  2. php js实现流程图,详解js中构造流程图的核心技术JsPlumb(2)_javascript技巧

    前言:上篇详解js中构造流程图的核心技术JsPlumb介绍了下JsPlumb在浏览器里面画流程图的效果展示,以及简单的JsPlumb代码示例.这篇还是接着来看看各个效果的代码说明. 一.设置连线的样式 ...

  3. python获取mysql中的数据供js调用_详解js文件通过python访问数据库方法

    我来教你 js文件怎么通过python访问数据库,希望能够为你带来帮助. 1.如果是要提交表单内容给 服务器的 python 处理,那么只需要在表单 里面的 action 填写服务端的处理路由就可以了 ...

  4. socket服务器断开消息,详解JS WebSocket断开原因和心跳机制

    1.断开原因 WebSocket断开的原因有很多,最好在WebSocket断开时,将错误打印出来. ws.onclose = function (e) { console.log('websocket ...

  5. 详解js对称加密和非对称加密

    详解js对称加密和非对称加密 https保证数据在传输过程中不被窃取和篡改,从而保证传输安全 1.加密 对称加密:产生一个密钥,可以用其加密,可以用其加密,也可以用其加解密. 这个密钥可以是任何东西, ...

  6. 详解 js 函数中的 arguments

    详解 js 函数中的 arguments 1.什么 arguments 简单来说:arguments 是一个对应于传递给函数的参数的类数组对象 arguments 对象是所有(非箭头)函数中都可用的局 ...

  7. 详解js中的继承(一)

    详解js中的继承(一) 前言 准备知识 1.构造函数,实例 2.原型对象 3.构造函数,原型对象和实例的关系 继承 原型链 小结 前言 通过[某种方式]让一个对象可以访问到另一个对象中的属性和方法,我 ...

  8. linux 弹出窗口,实现弹出窗口的window.open用法详解(js代码)

    实现弹出窗口的window.open用法详解(js代码) [1.最基本的弹出窗口代码] 其实代码非常简单: 因为这是一段javascripts代码,所以它们应该放在 cript">标签 ...

  9. 详解JS中的Object

    详解 JS 中的 Object 从本质上看,Object 是一个构造函数,用于创建对象. 一.Object 构造函数的属性 在 Object 中声明的属性只有两个: Object.length -- ...

  10. python 正则表达式 断言 不定长表达式_【教程】详解Python正则表达式之: (?!…) negative lookahead assertion 前向否定匹配 /前向否定断言...

    Python 2.7的官网文档中的解释是:(?!...)Matches if ... doesn't match next. This is a negative lookahead assertio ...

最新文章

  1. 焦李成院士:进化优化与深度学习的思考
  2. java 并行 执行进度_关于java:Java8流的顺序执行和并行执行产生不同的结果?
  3. SQLite学习手册(表达式)
  4. 数字图像处理与Python实现笔记之空间滤波
  5. springmvc+mybatis+dubbo+zookeeper分布式架构
  6. centos下crontab的使用
  7. 华为手机云闪付付款码如何截图_云闪付乘车码,它带着优惠又来了
  8. 光纤跳线接口_一篇文章读懂光纤接头、尾纤、耦合器、终端盒的作用与接法!...
  9. 【Python】基于Python的百度迁徙5——实时拥堵与拥堵指数(附代码)
  10. 卫星通信中信关站、关口站、地面终端的区分
  11. java 汉字转拼音_java汉字转拼音
  12. iOS IOS开发中各种型号的分辨率总结
  13. 3种免费的网页截图API,可以在线截图,自动生成缩略图
  14. Git报错Kex_exchange_identification
  15. php 验证 手机号码
  16. 数控加工零件工艺性分析
  17. Linux下软件逆向工程的介绍(一)
  18. Win11图片打不开怎么办?Win11无法打开图片的修复方法
  19. SAP ABAP开发个别概念理论区分理解
  20. python entry如何清空_Python3 tkinter基础 Entry insert delete 点击按钮 向输入框赋值 或 清空...

热门文章

  1. bat脚本获取管理员权限
  2. 下行文格式图片_下行文标准模版
  3. 如何同时分析顺心捷达多个已签收单号的物流信息
  4. SAP JCO3 官网代码解读 sap call java server
  5. 空窗2年,中文系萌妹拿下39W测试岗,还和面试官约上了烧烤?!
  6. 微信模板消息推送-模板再封装
  7. CT一般扫描参数_工业CT检测服务
  8. 敏捷软件开发 - 原则、模式与实践
  9. 矩阵理论及其应用课后习题作业:第三章 第四章
  10. 超强大几十款功能组合而成的一款工具箱微信小程序源码下载支持N个流量主