2Dにおける三角関数を使わないベクトルの90度回転
計算なしで回転できる?!
符号反転と数値の入れ替えだけで90度、180度、270度回転ができる。
前提条件
x軸とy軸に対する値を持つベクトルがあること
// 今回使うクラス
class Vector2
{
public float x = 0.0f;
public float y = 0.0f;
public Vector2(float _x, float _y)
{
x = _x;
y = _y;
}
}
90度回転の方法
yの値の符号を反転させて、そのうえでxとyの値を入れ替える。
vector = new Vector2(1, 0);
// 実践
vector = new Vector2(-vector.y, vector.x);
// vector.x = 0とvector.y = 1になる
↑で変換した値を確認すると90度回転した値になる。
信じられない人へ
Vector2(1, 0)だったからできたと思ったかもしれません。
では別でも試してみます。
vector = new Vector2(3, 4);
// 実践
vector = new Vector2(-vector.y, vector.x);
// vector.x = -4とvector.y = 3になる
180度回転の方法
xとyの値の符号を反転させる。
270度回転の方法
xの値の符号を反転させて、そのうえでxとyの値を入れ替える。
まとめ
三角関数を使用しなくても90度ずつの回転ができます。
テトリスやぷよぷよなどのパズルゲーム等にも使えるものですので、参考になればうれしいです。
Author And Source
この問題について(2Dにおける三角関数を使わないベクトルの90度回転), 我々は、より多くの情報をここで見つけました https://qiita.com/moshirozuki/items/77bc4452c719a37ec3ff著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .