• ベストアンサー

円形ボリュームのUIの実装方法

言語は寧ろなんでも良い(Dalvik javaで実装予定)のですが、音楽再生アプリケーションで、 シークバーではなく、円形のボリュームを実装しようと考えています。 ボリュームの画像を用意したのですが、 UIをドラッグした時の、回転の計算方法が思いつきません。 ドラッグイベントはx,yでAPIより受け取り、移動時のx,yの差をとるとして、 直線の動きなら、単にXまたはYを引くだけで計算できると思いますが、 X,Yの差を回転角度に計算する場合、どの様に計算すれば、それっぽくなるのでしょうか? 三平方を使うのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
noname#247307
noname#247307
回答No.1

円形のGUIがあり、マウスポインタのある方向(GUIの中心位置からマウスポインタのある方向の角度)が計算できればいいわけですね。 これはたいていのプログラミング言語に搭載されているatan2関数で計算できると思います。(X,Yがマウスポインタの位置、CX, CYが円の中心位置) 角度 = atan2(Y- CY, X- CX); これでラジアンによる角度が得られますので、後はその角度にGUIのグラフィックを回転して描画すればよいと思います。

chanmanxxx
質問者

お礼

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

関連するQ&A

専門家に質問してみよう