数学

実数の角度を0〜360度に収める。

#include <iostream> #include <cmath> // for fmod float roundDegree(float x) { if (x >= 0.f) { return fmod(x, 360.f); } else { return 360.f - fmod(-x, 360.f); } return x; } int main() { std::cout << roundDegree(10.f) << std::endl << roundDegree(120.30f) << </cmath></iostream>…

二つのベクトルを徐々に重ねる。

あるベクトルPを、あるベクトルQに重なるように、徐々に変化させる計算方法。 補完とかとはちょっと違う感じ。媒介変数とかは使いません。 変化のさせ方は、ベクトルPとベクトルQのなす平面に垂直な軸に対して、 回転させてPとQの成す角を近付けていく感じ。…

射影変換行列

最近は新しい会社での為に3Dを勉強し直していて、 自作のベクトルクラスや行列クラスを作ったりしている。 色々やっていて一番謎だった行列が、射影変換行列。 DirectGraphicsでは、D3DXMatrixPerspectiveFovLHとして 用意されていて、以下の様な行列とな…