Vector2 でよく使いそうな関数をまとめてみました。
目次
Vector2でよく使いそうな関数
float angle(): ベクトルがなす弧度(ラジアン)を求める
得られる値はラジアンなので、角度が欲しい場合は rad2deg()関数で変換します。
float angle_to(Vector2 to): 2つのベクトルがなす弧度(ラジアン)を求める
2つのベクトルがなす角度が知りたい場合に。
float cross(Vector2 with): ベクトル”with”との外積を求める
ベクトルが左右のどちらに向いているのかを調べるために使えます。
float distance_to(Vector2 to): ベクトル”to”への距離を求める
ベクトルの差をとって length() で求めるのが手間である場合に使います。
float dot(Vector2 with): ベクトル”with”との内積を求める
内積を使って、視野角度の判定に使えます。
float length(): ベクトルの長さを求める
位置ベクトルの差を求めて2点間の距離を求めるのに使えます。
Vector2 linear_interpolate(Vector2 to, float weight): ベクトル”to”へ線形補間したベクトルを求める
weight = 0.0 で現在のベクトル、weight = 1.0 で “to”ベクトルとなりますが 0.0~1.0 を超過することも可能です。
特定の位置に少しずつ近づける場合に 0.1で補間し続ける…といった使い方もできます。
Vector2 normalized(): 正規化したベクトルを返す
正規化したベクトルに速さをかけて使うのがよくある使い方ですね。
なお現在のベクトルを直接正規化する関数はないようです。
Vector2 rotated(float phi): ベクトルをphi(ラジアン)で回転させる
方向ベクトルを直接回転したい場合に使います。
Vector2 snapped (Vector2 by): “by” の単位でスナップされたベクトルを返す
例えば以下のように記述すると 32px 単位にスナップすることができます。
Vector2 pos;
# 32px単位の座標にスナップする
pos = pos.snapped(Vector2(32, 32))