座標を回転して新しい座標を取得する|Android開発

      2018/06/14

任意の座標を回転させた先の座標を取得する方法です。
Matrixを使うことで簡単に取得できます。

手順

  • postRotate()で角度と回転の中心座標を指定します。
  • mapPoints()で回転する座標を指定します。
    mapPoints()をコールするとパラメータに指定した座標が回転先の座標に変換されます。

サンプル

Matrix matrix = new Matrix();
// center of 1280x640
matrix.postRotate(90, 640, 360);

float[] points = new float[10];
for (int i = 0; i < points.length; i+=2) {
    points[i] = i;
    points[i + 1] = i * 10;
}
matrix.mapPoints(points);
for (int i = 0; i < points.length; i+=2) {
    android.util.Log.i("CNV90",
        String.format(Locale.US, "(%d, %d) > (%f, %f)",
            i, i * 10, points[i], points[i + 1]));
}

実行結果

: (0, 0) > (1000.000000, -280.000000)
: (2, 20) > (980.000000, -278.000000)
: (4, 40) > (960.000000, -276.000000)
: (6, 60) > (940.000000, -274.000000)
: (8, 80) > (920.000000, -272.000000)

 - Android