プロが教えるわが家の防犯対策術!

言語は寧ろなんでも良い(Dalvik javaで実装予定)のですが、音楽再生アプリケーションで、
シークバーではなく、円形のボリュームを実装しようと考えています。


ボリュームの画像を用意したのですが、
UIをドラッグした時の、回転の計算方法が思いつきません。

ドラッグイベントはx,yでAPIより受け取り、移動時のx,yの差をとるとして、
直線の動きなら、単にXまたはYを引くだけで計算できると思いますが、
X,Yの差を回転角度に計算する場合、どの様に計算すれば、それっぽくなるのでしょうか?

三平方を使うのでしょうか?

A 回答 (1件)

円形のGUIがあり、マウスポインタのある方向(GUIの中心位置からマウスポインタのある方向の角度)が計算できればいいわけですね。



これはたいていのプログラミング言語に搭載されているatan2関数で計算できると思います。(X,Yがマウスポインタの位置、CX, CYが円の中心位置)

角度 = atan2(Y- CY, X- CX);

これでラジアンによる角度が得られますので、後はその角度にGUIのグラフィックを回転して描画すればよいと思います。
    • good
    • 0
この回答へのお礼

遅くなり失礼いたしました。

ご回答の通りに、atan2でそれっぽくできました。
ありがとうございました。

お礼日時:2014/05/28 05:34

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!