質問

ホイールメニューコントロールを構築しています。アイデアは、あなたが行動したいアイテムが視界にあるまでホイールを回転させてから、それをクリックするかどうかということです。ユーザーのマウスの動き(x&y)を学位数に変換してホイールを回転させる方法を見つけようとしています。私はそれをすべて実装することができます、私はただ変換を行うために数学を逃しています。どんなヘルプやポインターをいただければ幸いです!

役に立ちましたか?

解決

Angle between mouse positions

ユーザーが[x1、y1]から[x2、y2]にマウスを移動した場合、基本的に必要なのは見つけることです

θ=θ12

どこ:

θ1 = math.atan2(y1、x1);

θ2 = math.atan2(y2、x2);

これで、すべてが起源(ホイールの中心)を定義する場所に依存します。あなたの起源が[x0、y0]の場合、実際のマウスの座標からそれらの値を減算するだけです。

また、画面上では、座標系が逆さまになるため、0,0は左下左ではなく左上にありますので、それをひっくり返す必要がありますが、数学は本質的に同じです。

また、角度は程度ではなくラジアンで測定されることに注意してください。

他のヒント

を取る atan2() 2つの後続の位置のうち、コントロールの中心からオフセットし、角度のデルタによって値を定数を掛けたものに変更します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top