そのため、5 つの vector2 を回転させて、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 度回転させてみましたが、最初のベクトルが得られませんでした。これは私には奇妙です。