彈性表達(dá)式

Keyframe Overshoot

freq = 3;

decay = 5;

n = 0;

if (numKeys > 0){

? n = nearestKey(time).index;

? if (key(n).time > time) n--;

}

if (n > 0){

? t = time - key(n).time;

? amp = velocityAtTime(key(n).time - .001);

? w = freq*Math.PI*2;

? value + amp*(Math.sin(t*w)/Math.exp(decay*t)/w);

}else

? value


Keyframe Bounce Back

e = .7;

g = 5000;

nMax = 9;

n = 0;

if (numKeys > 0){

? n = nearestKey(time).index;

? if (key(n).time > time) n--;

}

if (n > 0){

? t = time - key(n).time;

? v = -velocityAtTime(key(n).time - .001)*e;

? vl = length(v);

? if (value instanceof Array){

? ? vu = (vl > 0) ? normalize(v) : [0,0,0];

? }else{

? ? vu = (v < 0) ? -1 : 1;

? }

? tCur = 0;

? segDur = 2*vl/g;

? tNext = segDur;

? nb = 1; // number of bounces

? while (tNext < t && nb <= nMax){

? ? vl *= e;

? ? segDur *= e;

? ? tCur = tNext;

? ? tNext += segDur;

? ? nb++

? }

? if(nb <= nMax){

? ? delta = t - tCur;

? ? value +? vu*delta*(vl - g*delta/2);

? }else{

? ? value

? }

}else? value

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • ·Bounce 理解為“反彈”,如 皮球落地反彈的效果; e = .7; g=5000; nMax=9; n=0;...
    Mooooon_n閱讀 5,407評(píng)論 0 3
  • "use strict";function _classCallCheck(e,t){if(!(e instanc...
    久些閱讀 2,142評(píng)論 0 2
  • 人生最大的幸事,家庭和睦,全家身體健康! 早早的,哥哥就打電話來(lái)祝福先森生日快樂(lè),接下來(lái)就是媽媽的祝福。 也許是各...
    晴婕栩閱讀 266評(píng)論 0 0
  • 《綠》 久雨三天過(guò),新綠路邊綽。 匆匆行人去,懸露依然澈。
    笑看霜臨閱讀 197評(píng)論 0 0
  • 文/劉夏苒 前段時(shí)間回家,收拾了自己的房間,...
    _斯嘉麗_閱讀 818評(píng)論 7 9

友情鏈接更多精彩內(nèi)容