0

ここにC#のコードがあります

   //take a world Vector2D and make it a relative Vector2D
    public Vector2D WorldToRelative(Vector2D world)
    {
        Matrix mat = new Matrix();
        PointF[] Vectors = new PointF[1];

        Vectors[0].X = world.X;
        Vectors[0].Y = world.Y;

        mat.Rotate(-m_angle / (float)Math.PI * 180.0f);
        mat.TransformVectors(Vector2Ds);

        return new Vector2D(Vectors[0].X, Vectors[0].Y);
    }

問題は、アンドロイドのマトリックスに回転と変換のベクトルがないように見えることです。

前後の回転とマッピング ベクトルがあります。

このコードをアンドロイドに正しく移植するにはどうすればよいですか?

ありがとう

4

2 に答える 2

0

Android には優れたMatrixクラスがあります。と を使用mMatrix.setRotate()mMatrix.setTranslate()て、回転と移動を行います。スケーリングする必要がある場合は、 を使用しますmMatrix.setScale()

多くの Android 関数は 'set' で始まるため、 に.rotate()なり.setRotate()ます。少し慣れが必要です!

于 2012-10-16T22:19:08.770 に答える
0

回転、拡大縮小、移動はhttp://developer.android.com/reference/android/opengl/Matrix.htmlにあります。float[] を返すだけです。メソッドを使用するには、おそらくベクトルを行列に入れる必要があります。アンドロイドのやり方によっては、行列の転置を使用する必要があるかもしれません。

于 2012-10-16T22:15:07.793 に答える