三角関数のcosとsin関数は,
バネのように振動するアニメーション - cosとsin関数
楕円軌道の前に,
まずは,Math.
で,
- 振動する水平座標=中心座標+cosθ×振幅
アニメーションさせるには,DisplayObject.
イベントEvent.
)
スクリプト1 インスタンスを水平に振動させるフレームアクション
// MovieClip: 振動させるインスタンス
var nRadian:Number = 0;
var nCenterX:Number = stage.stageWidth/2;
var nRadiusX:Number = 100;
addEventListener(Event.ENTER_FRAME, xMoveX);
function xMoveX(eventObject:Event):void {
x = nCenterX+Math.cos(nRadian)*nRadiusX;
nRadian += 0.1;
}
[ムービープレビュー]で確かめると,
つぎに,Math.
で,
- 振動する垂直座標=中心座標+sinθ×振幅
インスタンスに記述するフレームアクションは,Math.
に変えたほか,
スクリプト2 インスタンスを垂直に振動させるフレームアクション
// MovieClip: 振動させるインスタンス
var nRadian:Number = 0;
var nCenterY:Number = stage.stageHeight/2;
var nRadiusY:Number = 100;
addEventListener(Event.ENTER_FRAME, xMoveY);
function xMoveY(eventObject:Event):void {
y = nCenterY+Math.sin(nRadian)*nRadiusY;
nRadian += 0.1;
}
- ※1)
振動する方向が水平ではcos関数,
垂直だとsin関数と決まっている訳ではない。前掲図1からわかるように, cosとsin関数の揺れる値の変化の仕方 (グラフのカーブの形状) は同じで, ただ増減の山と谷の位置が異なるに過ぎない。この山と谷の位置の違いを 「位相」 という。 なお,
物理ではバネにつけた重りの揺れる動きを 「単振動」 と呼び, sin関数を使った式で表す (中心は原点とする)。 - 重りの位置=振幅×sin
(位相)
- 重りの位置=振幅×sin