私はこのチュートリアルを使用しています:http://mobile.tutsplus.com/tutorials/android/android-sdk-creating-a-rotating-dialer/これにより、画像ビューに基づいて回転するダイヤラが得られます。しかし、私は機能を追加することによってそれを拡張しようとしています。ただし、この機能を追加するには、現在のクリック位置を取得する必要があります。ただし、rotationMatrixを使用して画像ビューを回転させるため、ユーザーがクリックした場所を分析するための単一の位置を取得できません。回転行列で見つかった9つの値を、ユーザーが触れた場所を示す1つの変数にクランチする方法はありますか?
1 に答える
0
これは、Androidの質問というよりも、コンピュータグラフィックスの質問です。同次座標を使用すると、原点を中心とした時計回りの回転は次のように表されます(ここでは、これを表すためにOctave / MATLAB表記を使用しています)。
rotationMatrix = [ cos(theta) sin(theta) 0; -sin(theta) cos(theta) 0; 0 0 1 ]
行列が原点を中心に回転していると仮定すると、シータを取得するためにjava.lang.Math.acos
返される配列の最初の値を呼び出して渡すことができます。Matrix.getValues
その値はラジアンであるため、度が必要な場合は変換する必要があります。
OTOH、何をしているのかによってはMatrix.invert
、逆数を取得するために呼び出して、タッチ座標を含むポイントにその逆数を掛けてMatrix
、変換を「元に戻す」ことができます。
于 2012-06-22T15:39:03.757 に答える