Mercurial > hg > old > magoroku_racing
comparison ps2util.cc @ 146:d1ddd095ab03
draw dot hit cource -rainbow-
author | e085768 |
---|---|
date | Fri, 29 Jul 2011 15:18:48 +0900 |
parents | 42337585fb7c |
children |
comparison
equal
deleted
inserted
replaced
143:be127b7d1812 | 146:d1ddd095ab03 |
---|---|
95 m[0][0] = m[1][1] = m[2][2] = m[3][3] = 1.0; | 95 m[0][0] = m[1][1] = m[2][2] = m[3][3] = 1.0; |
96 } | 96 } |
97 | 97 |
98 /* | 98 /* |
99 Y軸を中心とした行列の回転 | 99 Y軸を中心とした行列の回転 |
100 回転角 rx より X 軸を中心とした回転マトリックスを求めて、マトリックス m1 に左側から乗算して、その結果をマトリックス m0 に与える。 | 100 回転角 rx より X 軸を中心とした回転マトリックスを求めて、マトリックス m1 に左側から乗算して、その結果をマトリックス m0 に与える。 |
101 X 軸だけでなく Y 軸、Z 軸を中心とした関数もある。また3ついっんに回転させる関数もある。 | 101 X 軸だけでなく Y 軸、Z 軸を中心とした関数もある。また3ついっんに回転させる関数もある。 |
102 */ | 102 */ |
103 void ps2_vu0_rot_matrix_y(FMATRIX result, FMATRIX m, float radian) | 103 void ps2_vu0_rot_matrix_y(FMATRIX result, FMATRIX m, float radian) |
104 { | 104 { |
105 // 回転行列を作ってかけてやれば良い | 105 // 回転行列を作ってかけてやれば良い |
121 m[0][0] = cosf(radian); | 121 m[0][0] = cosf(radian); |
122 m[2][2] = cosf(radian); | 122 m[2][2] = cosf(radian); |
123 m[0][2] = -sinf(radian); | 123 m[0][2] = -sinf(radian); |
124 m[2][0] = sinf(radian); | 124 m[2][0] = sinf(radian); |
125 | 125 |
126 | |
126 FMATRIX m1;// = m; | 127 FMATRIX m1;// = m; |
127 memcpy(&m1, m, sizeof(FMATRIX)); | 128 memcpy(&m1, m, sizeof(FMATRIX)); |
128 | 129 |
129 ps2_vu0_mul_matrix(result, m1, m); | 130 ps2_vu0_mul_matrix(result, m1, m); |
130 } | 131 } |
161 | 162 |
162 // 外積 | 163 // 外積 |
163 void ps2_vu0_outer_product(FVECTOR result, FVECTOR v0, FVECTOR v1) | 164 void ps2_vu0_outer_product(FVECTOR result, FVECTOR v0, FVECTOR v1) |
164 { | 165 { |
165 result[0] = v0[1] * v1[2] - v0[2] * v1[1] ; | 166 result[0] = v0[1] * v1[2] - v0[2] * v1[1] ; |
166 result[1] = v0[0] * v1[2] - v0[2] * v1[0] ; | 167 |
168 // result[1]の計算はどっちがいいんでしょ? | |
169 // result[1] = v0[0] * v1[2] - v0[2] * v1[0] ; | |
170 result[1] = v0[2] * v1[0] - v0[0] * v1[2]; | |
167 result[2] = v0[0] * v1[1] - v0[1] * v1[0] ; | 171 result[2] = v0[0] * v1[1] - v0[1] * v1[0] ; |
168 result[3] = 1; | 172 result[3] = 1; |
169 } | 173 } |
170 | 174 |
171 // 内積 | 175 // 内積 |