タグ " *数式 "
音階の周波数の計算方法を前回の記事で書いたけど、それを元にFlash Player 10のDynamic Sound Generateで音楽を奏でるために、C-1〜G9までの音の周波数を確認するサンプルを作ってみた。
※ちなみに音は鳴りません。
A4(ラの音)の周波数(基準周波数) : 440(440〜445くらいらしい)
A4(ラの音)の数値(ノートナンバー) : 69
指定音の数値(ノートナンバー) : N
※一番下のドの音がC-1(0)〜一番上のソの音のG9(127)まで。
音程差 : D
音階の周波数 : H
D = Math.abs(N - 440)
A4より下の音
H = 440 / Math.pow(2,(D / 12))
A4より上の音
H = 440 * Math.pow(2,(D / 12))
※Math.powは累乗計算。この場合は、2のD / 12乗。
運動量保存の法則の公式
質量 : M
速度 : V
衝突後の速度(運動量保存) : VF
VF1 = ((M1 - M2) * V1 + 2 * M2 * V2) / (M1 + M2)
VF2 = (V1 - V2) + VF1
2点(2つの座標)間の角度を求める。
Aの座標 : (AX,AY)
Bの座標 : (BX,BY)
X座標での2点間の距離 : DX
Y座標での2点間の距離 : DY
角度(ラジアン) : Angle
DX = AX - BX
DY = AY -BY
Angle = Math.atan2(DY,DX)
2点(2つの座標)間の距離の距離を求める。
Aの座標 : (AX,AY)
Bの座標 : (BX,BY)
X座標での2点間の距離 : DX
Y座標での2点間の距離 : DY
距離 : D
DX = AX - BX
DY = AY -BY
D = Math.sqrt(DX * DX + DY * DY)
オブジェクトを円運動させる公式
オブジェクトのX座標 = X
オブジェクトのY座標 = Y
円の中心のX座標 = CenterX
円の中心のY座標 = CenterY
角度(ラジアン) = Angle
横半径 = RadiusX
縦半径 = RadiusY
回転速度 = VR
X = CenterX + Math.cos(Angle) + RadiusX
Y = CenterY + Math.sin(Angle) + RadiusY
Angle += VR
RadiusX = RadiusY の時、正円運動。
角度のラジアンと度数の単位換算式
ラジアン : RAD
度 : DEG
RAD = DEG * Math.PI / 180
DEG = RAD * 180 / Math.PI
乱数 : R
最小値 : MIN
最大値 : MAX
R = Math.floor(Math.ramdom() * (MAX - MIN + 1)) + MIN
時 : H
分 : M
秒 : S
ミリ秒 : MS
長針の角度 : H * (360 / 12) + M * (30 / 60)
短針の角度 : M * (360 / 60) + S * (6 / 60)
秒針の角度 : S * (360 / 60) + MS * (6 / 1000)
