いままでHSPのプラグインE3Dでの回転運動は、ラジアンは使わず、
そのままの値で罷り通って来ました。一回点するとちょうど360になり
360を超えたら0に戻す、これで完了。C++もそうだと思っていました。
しかしこれは残念なことにHSP版E3D出の話だったらしく、実際には
角度をラジアンに変換しなければならないようなのです。
目みたいなのは度(°)を表します。角度の求め方は
二つの点が必要になります。つまりベクトルです。ベクトルから
は長さも求めることが出来ますが、同時に角度も求めることが
できます。
★角度を求める式★
// ------------------------------------------------------------
//軸は考えず回る座標x,yを使う。
//-------------------------------------------------------------
角度 = atan2(y,x) * 180.0f / M_PI;
ここで重要なのはatan2()にx,yの順ではなく逆と言うこと。
しかしこの角度を取得したからと言って、そのまま移動量
に加えてしまうと大変なことになってしまいます。
そのままの値で罷り通って来ました。一回点するとちょうど360になり
360を超えたら0に戻す、これで完了。C++もそうだと思っていました。
しかしこれは残念なことにHSP版E3D出の話だったらしく、実際には
角度をラジアンに変換しなければならないようなのです。
目みたいなのは度(°)を表します。角度の求め方は
二つの点が必要になります。つまりベクトルです。ベクトルから
は長さも求めることが出来ますが、同時に角度も求めることが
できます。
★角度を求める式★
// ------------------------------------------------------------
//軸は考えず回る座標x,yを使う。
//-------------------------------------------------------------
角度 = atan2(y,x) * 180.0f / M_PI;
ここで重要なのはatan2()にx,yの順ではなく逆と言うこと。
しかしこの角度を取得したからと言って、そのまま移動量
に加えてしまうと大変なことになってしまいます。
PR
コメント