とりあえず日記

VIM→秀丸エディタ→VIM→秀丸エディタ→VIM→秀丸エディタ→VIM→秀丸エディタ→VIM→秀丸エディタ→VIM→秀丸エディタ(いまここ🍄)

数学

Euler angle(xyz/zxy/xzy/yxz/yzx/zyx) to quaternion.

オイラーの各軸(X/Y/Z軸)からクォータニオンへ変換する。 void XToQuaternion(Quaternion& q, float x){ q.x = sin(x * 0.5f); q.y = 0.0f; q.z = 0.0f; q.w = cos(x * 0.5f); }; void YToQuaternion(Quaternion& q, float y){ q.x = 0.0f; q.y = sin(y * …

wxMaximaでクォータニオンの積を計算する。

wxMaxima version /* quaternion qmul(quaternion l, quaternion r); */ qmul(l,r) := [ l[1]*r[4] + l[4]*r[1] + l[2]*r[3] - l[3]*r[2] , l[2]*r[4] + l[4]*r[2] + l[3]*r[1] - l[1]*r[3] , l[3]*r[4] + l[4]*r[3] + l[1]*r[2] - l[2]*r[1] , l[4]*r[4] - …

回転行列のTRSとSRTについて

回転行列、平行移動行列、スケール行列をかける順序にはまったのでメモ。 取り扱う行列 TRSとSRTの2種類について違いをまとめています。 TRSはプレイヤーの姿勢とかキャラクターのノード階層などで使用することが多いです。 SRTはテクスチャのUV座標系で使…

wxMaximaで3D数学を少々

はじめに wxMaximaを使用してみました。 その時の簡単なまとめです、数学は苦手なので間違いあると思います、ご注意を。3D系の行列(4x4行列)を計算してみました。 画面 まずは基本 平行移動 T:matrix([1,0,0,Tx],[0,1,0,Ty],[0,0,1,Tz],[0,0,0,1]); スケール…

Tiny Mersenne Twister (TinyMT)

今頃になって知ったのですが、擬似乱数を生成する「メルセンヌ・ツイスタ」のコンパクト版がリリースされてました。(2011/6/20リリース) TinyMT は Mersenne Twister にとって代わるものではなく、 メモリの制約などによって、Mersenne Twister を使用しに…