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);
    }

问题是android的矩阵似乎没有旋转和变换向量。

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

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

谢谢

4

2 回答 2

0

旋转、缩放和翻译位于http://developer.android.com/reference/android/opengl/Matrix.html。他们只是返回一个浮点数[]。您可能必须将向量放入矩阵中才能使用这些方法。您可能需要使用矩阵的转置,具体取决于 android 的处理方式。

于 2012-10-16T22:15:07.793 回答
0

Android有一个很棒的Matrix课程;只需使用mMatrix.setRotate()andmMatrix.setTranslate()来进行旋转和平移。如果需要扩展,请使用mMatrix.setScale().

很多 Android 函数都以 'set' 为前缀,所以.rotate()变成.setRotate(). 只是需要一点时间来适应!

于 2012-10-16T22:19:08.770 回答