所以,我试图旋转 5 个vector2s 以使 target(Vector2) 成为它们的正常值。但是当我旋转时,它没有正确旋转。当目标指向上方并且顶点的正常向右或向左时(默认值:0,-1 0,0 0,1)我必须将它们旋转 90 度但是当我这样做时结果不是 -1,0 0,0 1, 0 应该是什么。相反,它类似于:-1,vs 0,0 1,-vs vs=非常小的数字。为什么是这样?有没有办法纠正这个问题?代码:
Vector2 target = new Vector2(0, 1); //Create target
Vector2[] vecs = new Vector2[3] { new Vector2(0, -1), Vector2.Zero, new Vector2(0, 1) }; //Create verticies to be rotated
Matrix matrix = Matrix.CreateRotationZ(MathHelper.ToRadians(90)); //Should be: (float)Math.Atan2(target.Y, target.X) instead of 90 but wanted to simplify this
Vector2.Transform(vecs, ref matrix, vecs); // Rotate
我什至尝试以 360 度旋转整圈,但这并没有给我起始向量,这对我来说很奇怪。