2011年5月3日火曜日

タッチした方向に描画した円を発射する

Androidのタッチした方向に描画した円を発射するには、発射されるスタートの座標値から
タッチした座標値を求める。
















①スタートの座標値から、タッチした座標値の角度を考える
この場合の角度を求めるには、アークタンジェントを使う。

このアークタンジェントを求めるには、Mathクラスのatan2(double y,double x)を使用する。
これに当てはめると
double angle=Math.atan2(発射位置のy-タッチした位置のy,発射位置のx-タッチした位置のx)となる。

この、atan2()メソッドは極座標に変換するするもの。













②今度は速度を求める。
角度を求めたので、今度は求めた角度を使って速度を求める。
この速度を求めるには、タッチした座標値と発射する座標値をxとyそれぞれ分けて、
それに運動量を掛けると求められる。
この考え方はベクトルの分解と言う考え方を使う。

そうすると
double 速度x=Math.cos(angle)*運動量
double 速度y=Math.sin(angle)*運動量

から、速度を求めることが可能となる。















あとは、タッチイベントの処理メソッド内で発射する座標値とタッチする座標値を
Pointクラスを使用してそれぞれ求めることで発射することが出来る。

JavaTM Platform Mathクラスのatan2メソッド
Android Reference Mathクラスのatan2メソッド


0 件のコメント:

コメントを投稿