タグ : ,

三角関数 : ActionScript2.0

投稿日 : 2008年5月4日 | 更新日 : 2012年02月06日 前のページへ戻る

ActionScript2.0で三角関数を利用するメモ。

FlashのステージはY座標が下向きに正の値をとる。そのため角度は時計回りが正となる。 角度は度数で表す場合と弧度(ラジアン)表す場合がある。本記事では度数を変数Θ,弧度をθで表す。

ActionScript2.0と三角関数

ActionScript2.0の三角関数

ActionScriptで三角関数を扱うには次のようなメソッドある。

	    三角関数		逆関数
正弦	Math.sin		Math.asin
余弦	Math.cos		Math.acos
正接	Math.tan		Math.atan
				Math.atan2

円の座標

直行座標の円の点(x,y)は角度θ(弧度),半径r,中心(x0,y0)が与えられると下記のように表すことができる(このような座標の表示を極座標表示媒介変数表示と言う)。
x = r·cosθ + x0
y = r·sinθ + y0
radian(弧度),degree(角度),radius(半径),中心(x0,y0)とするとActionScriptでは次のようになる。
var radian = Math.PI/180*degree;
var x = r*Math.cos(radian)+x0;
var y = r*Math.sin(radian)+y0;
度数から弧度への変換は度数 ⇔ 弧度 : ActionScript 円については円 : 数学

回転行列

[x']=[ cosθ  -sinθ][x]
[y']=[ sinθ   cosθ][y]

楕円の座標

直行座標の楕円の点(x,y)は角度θ(弧度),長軸a,短軸b,中心(x0,y0)が与えられると下記のように表すことができる。
x = a·cosθ + x0
y = b·sinθ + y0		※a>b
radian(弧度),degree(角度),a(長軸),b(短軸),中心(x0,y0)とするとActionScriptでは次のようになる。
var radian = Math.PI/180*degree;
var x = a*Math.cos(radian)+x0;
var y = b*Math.sin(radian)+y0;

速度の分解

2次元の速度が速さ(speed),方向(角度:Θ)で与えられたとき、三角関数を使いX方向の速さ、Y方向の速さに分解することができます。
x = speed·cosΘ
y = speed·sinΘ
radian(弧度),degree(角度),speed(速さ)とするとActionScriptでは次のようになる。
var radian = Math.PI/180*degree;
var vX = speed*Math.cos(radian);
var vY = speed*Math.sin(radian);
逆にX方向の速さvX,Y軸方向の速さvYが与えられると、速度(速さspeed,方向degree)を求めることができます。
θ = Math.atan2(vY,vX);
degree = 180/Math.PI*θ
speed = Math.sqrt(vX*vX + vY*vY);

ActionScript2.0 | 固定リンク | Comments (0)

関連記事

このページの上へ移動

コメント

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

コメントの投稿

改行と段落タグは自動で挿入されます。
メールアドレスは表示されません。

 

 

 


トラックバックURL

http://www.findxfine.com/flash/actionscript/342.html/trackback

このページの上へ