MathMemo

回転行列とか忘れてたのでメモ。

// 角度と距離からの座標計算
n0.x = cos( R * PI/180 ) * ofDist(v0.x, v0.z, P.x, P.z);
n0.z = sin( R * PI/180 ) * ofDist(v0.x, v0.z, P.x, P.z);

// 任意の点Pでの回転行列(任意の点Pで回転させる)
n0.x = cos( R * PI/180 )*(v0.x-P.x) - sin( R * PI/180 )*(v0.y-P.y) + P.x;
n0.y = sin( R * PI/180 )*(v0.x-P.x) + cos( R * PI/180 )*(v0.y-P.y) + P.y;

// 2Dベクトルから角度に変換
angle = atan2(y,x)/(PI/180);

// 2点間角度を求める
x = x1 - x2;
y = y1 - y2;
angle = atan2(y,x)/(PI/180);