0

ここで興味深い三角問題...

Android 画面の真ん中に円があります。ユーザーが画面に触れた X、Y 座標に基づいて、正の Y 軸から角度を取得する必要があります。

現時点では、高校の幾何学はすべて失敗しています。どんな助けでも大歓迎です。

ありがとうございました!

4

1 に答える 1

1

点 x1、y1、および

xc = display.getWidth()/2;

yc = display.getHeight()/2;

左上の x1、y1。 x2, yc を中心に。 角度bと角度a

次に、 atan2( y1 - yc, x1 - xc) は、図の角度「a」に対応するラジアンで答えます。

あなたが参照する「正のy軸」は、90度の角度、つまりpi / 2ラジアンに対応します。本当に必要なのが「正の y 軸からの角度」である場合は、次の式を使用して、角度から pi/2 を減算し、絶対値を取得する必要があります (y 軸とあなたの間の角度の生の差を取得するため)。

angleInRadiansAwayFromYAxis = Math.abs(Math.atan2(y1 - yc, x1 - xc) - Math.PI/2);

角度 b と a の間の絶対角度差が必要な場合 (つまり、水平の y 軸が角度 0 であると仮定して)、角度を減算するだけです。

angleInRadiansFromYAxis = Math.atan2(y1 - yc, x1 - xc) - Math.PI/2;

負の数が気になる場合は、いつでも Math.PI * 2 で負の結果を取得して、0 と pi*2 の間の正の数を取得できます。

于 2013-03-15T02:01:36.257 に答える