RSS | Twitter | Facebook
Home » ActionScript » onEnterFrameを使った等(加)速度運動 : Actionscript

onEnterFrameを使った等(加)速度運動 : Actionscript

onEnterFrameイベントハンドラを使った等(加)速度運動

1軸上の速度

X軸上の水平移動を考える。以下、速度の方向を無視して速度と速さを同一視する。

速度[m/s] = 変位[m]/時間[s]		m:メートル, s:秒

onEnterFrameの1フレームを単位時間と考える。変位をピクセルの変化で考える。

速度 = 変位[pixel]/時間[frame]

漸化式を使った等(加)速度運動

onEnterFrameは離散なので、漸化式で表すことができる。

フレーム毎の位置

tフレーム目とt+1フレーム目の速度とオブジェクトの位置。

フレーム(t) スピード(v) オブジェクトのx座標(x)
t vt xt
t+1 vt+1 xt+1

t+1フレーム目の位置

上記の表からt+1フレーム目の位置(xt+1)をtフレーム目の速度(vt)と位置(xt)で表す。

速度 = 変位[pixel]/時間[frame]より
vt = (xt+1-xt) / (t+1)-t
(t+1)-tは1なので
vt = xt+1 - xt
t+1フレーム目の位置(変位)は
xt+1 = xt + vt   ---漸化式		x:変位, v:速度, t:フレーム

等速度運動

等速度運動の変異は等差数列の漸化式。

速度一定: vt = v
xt+1 = xt + v

ActionScript
MC._x += v
/* 等速運動 */
function Clip(){
 	// 速度一定(定数)
 	var v = 1;
	// イベントハンドラ
 	this.onEnterFrame = function(){
		// 等速運動
 		this._x += v;
	 }
}

等加速度運動

等加速度運動の場合、速度が等差数列の漸化式になる。

速度: vt = a•t+v0	a:加速度, v0:初速度, t:フレーム
簡単にするため静止した状態から動き出すと仮定(v0 = 0)
v0 = 0 なので
vt = a•t

漸化式。

vt+1 = vt + a
/* 等加速運動 */
function Clip(){
	// 速さ(変数)
	var v = 0;
	// 加速度(定数)
	var a = 5;
	// イベントハンドラ
	this.onEnterFrame = function(){
		// 等加速運動
		v += a;
		this._x += v;
	}
}

微分を使った等加速度の考え方

変位の公式 : x = (1/2)a•t2+v0•t		x:変位, a:加速度, t:時間, v0:初速度
速度の公式 : v = dx/dt = at+v0

dtを単位フレーム,dxを単位フレームの変位と考える。

(xt+1 - xt) / 1 = a•t + v0
xt+1 = a•t + v0 + xt

簡単にするためにv0=0とする。

xt+1 = a•t + xt

関連記事

»等速度/等加速度運動 : 物理

このページの上へ移動

  Yahoo!ブックマークに登録    Google  この記事をクリップ!  BuzzurlにブックマークBuzzurlにブックマーク

2008/3/16 日 | ActionScript, physics | 固定リンク |

コメントはまだありません。

コメントの投稿

改行と段落タグは自動で挿入されます。メールアドレスは表示されません。
利用可能な HTML タグ :
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite="">
<cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

(必須)

(必須)


トラックバックURL

このページの上へ移動