SlideShare a Scribd company logo
1 of 16
第5回 プログラマのための数学勉強会
グラフィックエンジニア必見!
イージングの数学
岩淵 勇樹 ( @butchi_y )
イージングとは
― Wikipediaより
イージングとは
―Googleより
→ 緩急が付いている!
イージングの例
イージングなし
イージングあり
JavaScript (jQuery)
animateの引数にテキストで指定する
“linear”と“swing”しかない
記述例:
$("div.ball").animate({
left: "300px";
}, 3000, "swing");
jQuery Easing Plugin(JavaScriptライブラリ)
animateの引数に指定できるバリエーションが30種類以上に増える
記述例:
$("div.ball").animate({
left: "300px";
}, 3000, "easeInCubic");
※
<script src=”jquery.easing.js”>
がHTMLに必要
CSSアニメーション
animationとtransition(IE10〜)に指定可能(CSS3)
適宜@keyframesプロパティと組み合わせて使う
記述例:
div.sample {
animation: anime1 5s ease -2s infinite alternate;
}
@keyframes anime1 {
0% {width: 50px; height: 50px; background-color: aqua;}
100% {width: 200px; height: 50px; background-color: blue;}
}
Flash
「クラシックトゥイーン」ではease-in/outの強度のみ指定可能
「(新しい)モーショントゥイーン」では
「モーションエディタ」によりかなり柔軟なイージングが可能
イージングの数学
jQuery Easing Pluginの中身
easeInCubic: function (x, t, b, c, d) {
return c*(t/=d)*t*t + b;
},
easeOutSine: function (x, t, b, c, d) {
return c * Math.sin(t/d * (Math.PI/2)) + b;
},
3乗
正弦関数
数学だ!
イージングの問題点
値は基本、0で始まり1で終わる →元に戻るアニメーションを作れない
(あくまで「緩急をつける」という役割と割り切るなら順当ですが…)
数学関数作るのには知識も労力も要る →エグいんです!
微調整が難しい
ライブラリ作ってみた
その名もbease
https://github.com/butchi/bease
オリジナルライブラリbeaseの特徴
イージング関数の元は数値の配列(棒グラフ的)
さまざまな補間形式に対応(←)
線形補間の場合、計算が高速(未検証)
原理的にはどんなイージング関数でも作れる
作ってみて
線形補間(一次式)するだけで意外となんとかなる
他の補間は使いものにならない(要改良)
jQueryとの連携が思ったよりすんなりいった
波形エディタの実装が難儀だった(でもRaphaelはすごい)
cubic-bezier
CSS3の標準的なイージング関数
3次のベジェ曲線
jQuery Easing Pluginのイージング関数を
ほとんど再現できるが、どうしても無理なものもある
記述例: cubic-bezier(.17,.67,.83,.67)
Next Thing...
_人人人人人人人_
> ベジェ曲線 <
 ̄Y^Y^Y^Y^Y^Y ̄
の話も乞うご期待!!

More Related Content

More from Yu(u)ki IWABUCHI

音楽にまつわる数学 〜「倍音」で理解する和音と音色〜
音楽にまつわる数学 〜「倍音」で理解する和音と音色〜音楽にまつわる数学 〜「倍音」で理解する和音と音色〜
音楽にまつわる数学 〜「倍音」で理解する和音と音色〜Yu(u)ki IWABUCHI
 
明日機械学習に役立つかもしれない数学
明日機械学習に役立つかもしれない数学明日機械学習に役立つかもしれない数学
明日機械学習に役立つかもしれない数学Yu(u)ki IWABUCHI
 
IFSを使ったフラクタルの描画
IFSを使ったフラクタルの描画IFSを使ったフラクタルの描画
IFSを使ったフラクタルの描画Yu(u)ki IWABUCHI
 
フラクタル音楽 〜可視化と可聴化の世界〜
フラクタル音楽 〜可視化と可聴化の世界〜フラクタル音楽 〜可視化と可聴化の世界〜
フラクタル音楽 〜可視化と可聴化の世界〜Yu(u)ki IWABUCHI
 
ワイソフ配列について
ワイソフ配列についてワイソフ配列について
ワイソフ配列についてYu(u)ki IWABUCHI
 
名のあるフラクタルたち
名のあるフラクタルたち名のあるフラクタルたち
名のあるフラクタルたちYu(u)ki IWABUCHI
 
自己紹介とパズル紹介
自己紹介とパズル紹介自己紹介とパズル紹介
自己紹介とパズル紹介Yu(u)ki IWABUCHI
 
かんたんベジェ曲線
かんたんベジェ曲線かんたんベジェ曲線
かんたんベジェ曲線Yu(u)ki IWABUCHI
 
Mathematicaで 機械学習してみた
Mathematicaで機械学習してみたMathematicaで機械学習してみた
Mathematicaで 機械学習してみたYu(u)ki IWABUCHI
 
加法よりも低レベルな演算を考える
加法よりも低レベルな演算を考える加法よりも低レベルな演算を考える
加法よりも低レベルな演算を考えるYu(u)ki IWABUCHI
 
サイエンスアゴラ研究100連発 〜目に見えて楽しい数学〜
サイエンスアゴラ研究100連発 〜目に見えて楽しい数学〜サイエンスアゴラ研究100連発 〜目に見えて楽しい数学〜
サイエンスアゴラ研究100連発 〜目に見えて楽しい数学〜Yu(u)ki IWABUCHI
 
Bad Apple Curve!! 〜フーリエ記述子でアニメーション作ってみた〜
Bad Apple Curve!! 〜フーリエ記述子でアニメーション作ってみた〜Bad Apple Curve!! 〜フーリエ記述子でアニメーション作ってみた〜
Bad Apple Curve!! 〜フーリエ記述子でアニメーション作ってみた〜Yu(u)ki IWABUCHI
 
コンピュータで全く使われない数表現
コンピュータで全く使われない数表現コンピュータで全く使われない数表現
コンピュータで全く使われない数表現Yu(u)ki IWABUCHI
 

More from Yu(u)ki IWABUCHI (16)

音楽にまつわる数学 〜「倍音」で理解する和音と音色〜
音楽にまつわる数学 〜「倍音」で理解する和音と音色〜音楽にまつわる数学 〜「倍音」で理解する和音と音色〜
音楽にまつわる数学 〜「倍音」で理解する和音と音色〜
 
明日機械学習に役立つかもしれない数学
明日機械学習に役立つかもしれない数学明日機械学習に役立つかもしれない数学
明日機械学習に役立つかもしれない数学
 
IFSを使ったフラクタルの描画
IFSを使ったフラクタルの描画IFSを使ったフラクタルの描画
IFSを使ったフラクタルの描画
 
フラクタル音楽 〜可視化と可聴化の世界〜
フラクタル音楽 〜可視化と可聴化の世界〜フラクタル音楽 〜可視化と可聴化の世界〜
フラクタル音楽 〜可視化と可聴化の世界〜
 
ラスタとベクタ
ラスタとベクタラスタとベクタ
ラスタとベクタ
 
ワイソフ配列について
ワイソフ配列についてワイソフ配列について
ワイソフ配列について
 
名のあるフラクタルたち
名のあるフラクタルたち名のあるフラクタルたち
名のあるフラクタルたち
 
自己紹介とパズル紹介
自己紹介とパズル紹介自己紹介とパズル紹介
自己紹介とパズル紹介
 
かんたんベジェ曲線
かんたんベジェ曲線かんたんベジェ曲線
かんたんベジェ曲線
 
Mathematicaで 機械学習してみた
Mathematicaで機械学習してみたMathematicaで機械学習してみた
Mathematicaで 機械学習してみた
 
加法よりも低レベルな演算を考える
加法よりも低レベルな演算を考える加法よりも低レベルな演算を考える
加法よりも低レベルな演算を考える
 
サイエンスアゴラ研究100連発 〜目に見えて楽しい数学〜
サイエンスアゴラ研究100連発 〜目に見えて楽しい数学〜サイエンスアゴラ研究100連発 〜目に見えて楽しい数学〜
サイエンスアゴラ研究100連発 〜目に見えて楽しい数学〜
 
Bad Apple Curve!! 〜フーリエ記述子でアニメーション作ってみた〜
Bad Apple Curve!! 〜フーリエ記述子でアニメーション作ってみた〜Bad Apple Curve!! 〜フーリエ記述子でアニメーション作ってみた〜
Bad Apple Curve!! 〜フーリエ記述子でアニメーション作ってみた〜
 
コンピュータで全く使われない数表現
コンピュータで全く使われない数表現コンピュータで全く使われない数表現
コンピュータで全く使われない数表現
 
いただきます。
いただきます。いただきます。
いただきます。
 
フラクタル概説
フラクタル概説フラクタル概説
フラクタル概説
 

グラフィックエンジニア必見!イージングの数学

Editor's Notes

  1. イージングは、CSSアニメーションやjQueryで、アニメーションに緩急をつけるために使うプロパティです。 CSSやjQueryでアニメーションを作るとき、ease-inとか、linearとか、設定することがあると思います。