C# Matrix to Android Matrix?



我这里有一些 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);
    }

问题是安卓的矩阵似乎没有旋转和变换矢量。

它具有前后旋转和映射矢量。

我该怎么做才能将此代码正确移植到安卓?

谢谢

Android有一个很棒的Matrix类;只需使用mMatrix.setRotate()mMatrix.setTranslate()即可进行旋转和平移。 如果需要缩放,请使用 mMatrix.setScale()

很多安卓功能都以"set"为前缀,所以.rotate()变得.setRotate()。 只需要一点点习惯!

旋转、缩放和平移都在 http://developer.android.com/reference/android/opengl/Matrix.html。 它们只是返回一个浮点数[]。 您可能需要将向量放入矩阵中才能使用这些方法。 您可能需要使用矩阵的转置,具体取决于 Android 的工作方式。

最新更新