Violet Vreath is Shooter Game for Windows XP+(個人制作シューティングゲーム)
修订版 | 0208a7e6a3bac15544f9898e5328763942d0ecae (tree) |
---|---|
时间 | 2022-05-29 18:52:08 |
作者 | gecchi <gecchi@boch...> |
Commiter | gecchi |
ちょこっと精度アップ?
@@ -7,6 +7,8 @@ | ||
7 | 7 | |
8 | 8 | namespace GgafDx { |
9 | 9 | |
10 | +#define SR_AC (2) | |
11 | + | |
10 | 12 | /** |
11 | 13 | * 単位球と、単位ベクトルの座標のマッピング . |
12 | 14 | * 方向ベクトルからZ軸回転角とY軸回転角、逆にZ軸回転角とY軸回転角から方向ベクトルの相互変換を可能とするために設計。<BR> |
@@ -25,11 +27,11 @@ public: | ||
25 | 27 | }; |
26 | 28 | |
27 | 29 | struct RzRy { |
28 | - s_ang rz; | |
29 | - s_ang ry; | |
30 | + s_ang s_rz; | |
31 | + s_ang s_ry; | |
30 | 32 | }; |
31 | 33 | |
32 | - SrVec _sr_vec[(D90SANG + 1)][(D90SANG+1)]; | |
34 | + SrVec _sr_vec[(D90SANG*SR_AC + 1)][(D90SANG*SR_AC +1)]; | |
33 | 35 | std::map<uint32_t, std::map<uint32_t, RzRy> > _vy_vz_2_rz_ry_rev; |
34 | 36 | |
35 | 37 | public: |
@@ -47,8 +49,8 @@ public: | ||
47 | 49 | void getFaceAngClosely(uint32_t prm_x, |
48 | 50 | uint32_t prm_y, |
49 | 51 | uint32_t prm_z, |
50 | - s_ang& out_faceZ, | |
51 | - s_ang& out_faceY_rev); | |
52 | + angle& out_faceZ, | |
53 | + angle& out_faceY_rev); | |
52 | 54 | |
53 | 55 | /** |
54 | 56 | * 引数のZ軸回転とY軸回転の値から、相当する単位方向ベクトルの近似を求める . |
@@ -60,12 +62,12 @@ public: | ||
60 | 62 | * @param out_y 単位方向ベクトルY要素(長さ 1 が 10000000) > 0 |
61 | 63 | * @param out_z 単位方向ベクトルZ要素(長さ 1 が 10000000) > 0 |
62 | 64 | */ |
63 | - inline void getVectorClosely(s_ang prm_faceZ, | |
64 | - s_ang prm_faceY_rev, | |
65 | + inline void getVectorClosely(angle prm_faceZ, | |
66 | + angle prm_faceY_rev, | |
65 | 67 | uint32_t& out_x, |
66 | 68 | uint32_t& out_y, |
67 | 69 | uint32_t& out_z ) { |
68 | - SrVec* pV = &(_sr_vec[prm_faceZ][prm_faceY_rev]); | |
70 | + SrVec* pV = &(_sr_vec[(s_ang)(prm_faceZ/(1.0*SANG_RATE/SR_AC))][(s_ang)(prm_faceY_rev/(1.0*SANG_RATE/SR_AC))]); | |
69 | 71 | out_x = pV->x; |
70 | 72 | out_y = pV->y; |
71 | 73 | out_z = pV->z; |
@@ -29,10 +29,10 @@ namespace GgafDx { | ||
29 | 29 | */ |
30 | 30 | class Util : public GgafCore::Util { |
31 | 31 | |
32 | - struct AngleSet { | |
33 | - angle rz[D360SANG+1]; | |
34 | - angle ry[D360SANG+1]; | |
35 | - }; | |
32 | +// struct AngleSet { | |
33 | +// angle rz[D360SANG+1]; | |
34 | +// angle ry[D360SANG+1]; | |
35 | +// }; | |
36 | 36 | |
37 | 37 | public: |
38 | 38 |
@@ -66,22 +66,22 @@ public: | ||
66 | 66 | * 平面射影時にできるなす角 → 2軸の回転角 の変換テーブル(その1-1) . |
67 | 67 | * 方向ベクトルを、[XY平面へ射影した時のなす角][XZ平面へ射影した時のなす角] → 元の方向ベクトルのZ軸回転角 の変換テーブル |
68 | 68 | */ |
69 | - static angle PROJANG_XY_XZ_TO_ROTANG_z[D90SANG+1][D90SANG+1]; | |
69 | + static angle PROJANG_XY_XZ_TO_ROTANG_z[D90SANG*SR_AC+1][D90SANG*SR_AC+1]; | |
70 | 70 | /** |
71 | 71 | * 平面射影時にできるなす角 → 2軸の回転角 の変換テーブル(その1-2) . |
72 | 72 | * 方向ベクトルを、[XY平面へ射影した時のなす角][XZ平面へ射影した時のなす角] → 元の方向ベクトルのY軸(逆)回転角 の変換テーブル |
73 | 73 | */ |
74 | - static angle PROJANG_XY_XZ_TO_ROTANG_y_REV[D90SANG+1][D90SANG+1]; | |
74 | + static angle PROJANG_XY_XZ_TO_ROTANG_y_REV[D90SANG*SR_AC+1][D90SANG*SR_AC+1]; | |
75 | 75 | /** |
76 | 76 | * 平面射影時にできるなす角 → 2軸の回転角 の変換テーブル(その2-1) . |
77 | 77 | * 方向ベクトルを、[ZY平面へ射影した時のなす角][ZX平面へ射影した時のなす角] → 元の方向ベクトルのX軸(逆)回転角 の変換テーブル |
78 | 78 | */ |
79 | - static angle PROJANG_ZY_ZX_TO_ROTANG_x_REV[D90SANG+1][D90SANG+1]; | |
79 | + static angle PROJANG_ZY_ZX_TO_ROTANG_x_REV[D90SANG*SR_AC+1][D90SANG*SR_AC+1]; | |
80 | 80 | /** |
81 | 81 | * 平面射影時にできるなす角 → 2軸の回転角 の変換テーブル(その2-2) . |
82 | 82 | * 方向ベクトルを、[ZY平面へ射影した時のなす角][ZX平面へ射影した時のなす角] → 元の方向ベクトルのY軸回転角 の変換テーブル |
83 | 83 | */ |
84 | - static angle PROJANG_ZY_ZX_TO_ROTANG_y[D90SANG+1][D90SANG+1]; | |
84 | + static angle PROJANG_ZY_ZX_TO_ROTANG_y[D90SANG*SR_AC+1][D90SANG*SR_AC+1]; | |
85 | 85 | |
86 | 86 | static double RND_CIRCLE_X[]; |
87 | 87 | static double RND_CIRCLE_Y[]; |
@@ -11,29 +11,29 @@ SphereRadiusVectors::SphereRadiusVectors() : GgafCore::Object() { | ||
11 | 11 | double xXY, yXY, x, y, z; |
12 | 12 | double radRotAxisZ, radRotAxisY; |
13 | 13 | |
14 | - for (s_ang faceAxisZ = 0; faceAxisZ <= D90SANG; faceAxisZ++) { | |
14 | + for (s_ang s_ang_Rz = 0; s_ang_Rz <= D90SANG*SR_AC; s_ang_Rz++) { | |
15 | 15 | //XY平面上の球表面の点を求める。 |
16 | - radRotAxisZ = (((PI * 2.0) * faceAxisZ) / D360SANG) ; | |
16 | + radRotAxisZ = (((PI * 2.0) * s_ang_Rz) / (1.0*D360SANG*SR_AC) ) ; | |
17 | 17 | xXY = cos(radRotAxisZ); |
18 | 18 | yXY = sin(radRotAxisZ); |
19 | 19 | n_y = yXY * 10000000.0; |
20 | - for (s_ang faceAxisY_rev = 0; faceAxisY_rev <= D90SANG; faceAxisY_rev++) { | |
20 | + for (s_ang s_ang_Ry_rev = 0; s_ang_Ry_rev <= D90SANG*SR_AC; s_ang_Ry_rev++) { | |
21 | 21 | //XY平面上の球表面の点を、Y軸回転する。 |
22 | 22 | //注意:このY軸回転は、計算の都合上、左手系Y軸回転の逆回転になります。 |
23 | - radRotAxisY = (((PI * 2.0) * faceAxisY_rev) / D360SANG); | |
23 | + radRotAxisY = (((PI * 2.0) * s_ang_Ry_rev) / (1.0*D360SANG*SR_AC) ); | |
24 | 24 | x = xXY * cos(radRotAxisY); |
25 | 25 | z = xXY * sin(radRotAxisY); |
26 | 26 | n_x = x * 10000000.0; |
27 | 27 | n_z = z * 10000000.0; |
28 | 28 | //_sr_vec |
29 | - SrVec* pVec = &(_sr_vec[faceAxisZ][faceAxisY_rev]); | |
29 | + SrVec* pVec = &(_sr_vec[s_ang_Rz][s_ang_Ry_rev]); | |
30 | 30 | pVec->x = n_x; |
31 | 31 | pVec->y = n_y; |
32 | 32 | pVec->z = n_z; |
33 | 33 | |
34 | 34 | //逆参照を設定 |
35 | - _vy_vz_2_rz_ry_rev[n_y][n_z].rz = faceAxisZ; | |
36 | - _vy_vz_2_rz_ry_rev[n_y][n_z].ry = faceAxisY_rev; | |
35 | + _vy_vz_2_rz_ry_rev[n_y][n_z].s_rz = s_ang_Rz; | |
36 | + _vy_vz_2_rz_ry_rev[n_y][n_z].s_ry = s_ang_Ry_rev; | |
37 | 37 | } |
38 | 38 | } |
39 | 39 | } |
@@ -41,8 +41,8 @@ SphereRadiusVectors::SphereRadiusVectors() : GgafCore::Object() { | ||
41 | 41 | void SphereRadiusVectors::getFaceAngClosely(uint32_t prm_x, |
42 | 42 | uint32_t prm_y, |
43 | 43 | uint32_t prm_z, |
44 | - s_ang& out_faceZ, | |
45 | - s_ang& out_faceY_rev) { | |
44 | + angle& out_faceZ, | |
45 | + angle& out_faceY_rev) { | |
46 | 46 | std::map<uint32_t, std::map<uint32_t, RzRy> >::iterator ite_begin_vy = _vy_vz_2_rz_ry_rev.lower_bound(prm_y); |
47 | 47 | if (ite_begin_vy == _vy_vz_2_rz_ry_rev.end()) { |
48 | 48 | ite_begin_vy--; |
@@ -53,8 +53,8 @@ void SphereRadiusVectors::getFaceAngClosely(uint32_t prm_x, | ||
53 | 53 | ite_begin_vz--; |
54 | 54 | } |
55 | 55 | RzRy* pRzRy = &(ite_begin_vz->second); |
56 | - out_faceZ = pRzRy->rz; | |
57 | - out_faceY_rev = pRzRy->ry; | |
56 | + out_faceZ = pRzRy->s_rz*((1.0*SANG_RATE)/SR_AC); | |
57 | + out_faceY_rev = pRzRy->s_ry*((1.0*SANG_RATE)/SR_AC); | |
58 | 58 | |
59 | 59 | } |
60 | 60 |
@@ -72,10 +72,10 @@ angle Util::SLANT2ANG[100000 + 1]; | ||
72 | 72 | //angle Util::PROJANG_XY_ZX_YZ_TO_ROTANG_z[D90SANG+1][D90SANG+1]; |
73 | 73 | |
74 | 74 | |
75 | -angle Util::PROJANG_XY_XZ_TO_ROTANG_z[D90SANG+1][D90SANG+1]; | |
76 | -angle Util::PROJANG_XY_XZ_TO_ROTANG_y_REV[D90SANG+1][D90SANG+1]; | |
77 | -angle Util::PROJANG_ZY_ZX_TO_ROTANG_x_REV[D90SANG+1][D90SANG+1]; | |
78 | -angle Util::PROJANG_ZY_ZX_TO_ROTANG_y[D90SANG+1][D90SANG+1]; | |
75 | +angle Util::PROJANG_XY_XZ_TO_ROTANG_z[D90SANG*SR_AC+1][D90SANG*SR_AC+1]; | |
76 | +angle Util::PROJANG_XY_XZ_TO_ROTANG_y_REV[D90SANG*SR_AC+1][D90SANG*SR_AC+1]; | |
77 | +angle Util::PROJANG_ZY_ZX_TO_ROTANG_x_REV[D90SANG*SR_AC+1][D90SANG*SR_AC+1]; | |
78 | +angle Util::PROJANG_ZY_ZX_TO_ROTANG_y[D90SANG*SR_AC+1][D90SANG*SR_AC+1]; | |
79 | 79 | |
80 | 80 | double Util::RND_CIRCLE_X[10000]; |
81 | 81 | double Util::RND_CIRCLE_Y[10000]; |
@@ -89,7 +89,7 @@ void Util::init() { | ||
89 | 89 | if (Util::_was_GgafDx_Util_inited_flg) { |
90 | 90 | return; |
91 | 91 | } |
92 | - | |
92 | + // ang精度 0 〜 36000 に変更 | |
93 | 93 | for (s_ang ang = 0; ang < 36000+1; ang++) { |
94 | 94 | double rad = (PI2 * ang) / 36000; |
95 | 95 | Util::COS[ang] = cos(rad); |
@@ -189,24 +189,24 @@ void Util::init() { | ||
189 | 189 | double vx1 = 1.0; |
190 | 190 | double vz2 = 1.0; |
191 | 191 | |
192 | - for (s_ang prj_ang = 0; prj_ang <= D90SANG; prj_ang++) { | |
192 | + for (s_ang prj_s_ang = 0; prj_s_ang <= D90SANG*SR_AC; prj_s_ang++) { | |
193 | 193 | |
194 | - double prj_rad_xy = (PI * 2.0 * prj_ang) / (1.0*D360SANG); | |
194 | + double prj_rad_xy = (PI * 2.0 * prj_s_ang) / (1.0*D360SANG*SR_AC); | |
195 | 195 | double vy1 = tan(prj_rad_xy); |
196 | 196 | |
197 | - s_ang prj_ang_xy = prj_ang; | |
198 | - for (s_ang prj_ang_xz = 0; prj_ang_xz <= D90SANG; prj_ang_xz++) { | |
199 | - double prj_rad_xz = (PI * 2.0 * prj_ang_xz) / (1.0*D360SANG); | |
197 | + s_ang prj_s_ang_xy = prj_s_ang; | |
198 | + for (s_ang prj_s_ang_xz = 0; prj_s_ang_xz <= D90SANG*SR_AC; prj_s_ang_xz++) { | |
199 | + double prj_rad_xz = (PI * 2.0 * prj_s_ang_xz) / (1.0*D360SANG*SR_AC); | |
200 | 200 | double vz1 = tan(prj_rad_xz); |
201 | 201 | |
202 | 202 | //方向ベクトルを作成 |
203 | 203 | //vx,vy,vz を正規化する。 |
204 | - double t = 1 / sqrt(vx1 * vx1 + vy1 * vy1 + vz1 * vz1); | |
204 | + double t = 1.0 / sqrt(vx1 * vx1 + vy1 * vy1 + vz1 * vz1); | |
205 | 205 | double nvx = t * vx1; |
206 | 206 | double nvy = t * vy1; |
207 | 207 | double nvz = t * vz1; |
208 | 208 | //単位ベクトルからRzRy(逆回転)を求める |
209 | - s_ang rz, ry_rev; | |
209 | + angle rz, ry_rev; | |
210 | 210 | Util::_srv.getFaceAngClosely( |
211 | 211 | (uint32_t)(nvx*10000000), |
212 | 212 | (uint32_t)(nvy*10000000), |
@@ -214,39 +214,39 @@ void Util::init() { | ||
214 | 214 | rz, |
215 | 215 | ry_rev |
216 | 216 | ); |
217 | - Util::PROJANG_XY_XZ_TO_ROTANG_z[prj_ang_xy][prj_ang_xz] = rz*SANG_RATE; | |
218 | - Util::PROJANG_XY_XZ_TO_ROTANG_y_REV[prj_ang_xy][prj_ang_xz] = ry_rev*SANG_RATE; | |
217 | + Util::PROJANG_XY_XZ_TO_ROTANG_z[prj_s_ang_xy][prj_s_ang_xz] = rz; | |
218 | + Util::PROJANG_XY_XZ_TO_ROTANG_y_REV[prj_s_ang_xy][prj_s_ang_xz] = ry_rev; | |
219 | 219 | } |
220 | 220 | // prj_rad_zy = (PI * 2.0 * prj_ang_zy) / (1.0*D360SANG); |
221 | 221 | // vy2 = tan(prj_rad_zy); |
222 | - s_ang prj_ang_zy = prj_ang; | |
222 | + s_ang prj_s_ang_zy = prj_s_ang; | |
223 | 223 | double vy2 = vy1; |
224 | - for (s_ang prj_ang_zx = 0; prj_ang_zx <= D90SANG; prj_ang_zx++) { | |
225 | - double prj_rad_zx = (PI * 2.0 * prj_ang_zx) / (1.0*D360SANG); | |
224 | + for (s_ang prj_s_ang_zx = 0; prj_s_ang_zx <= D90SANG*SR_AC; prj_s_ang_zx++) { | |
225 | + double prj_rad_zx = (PI * 2.0 * prj_s_ang_zx) / (1.0*D360SANG*SR_AC); | |
226 | 226 | //方向ベクトルを作成 |
227 | 227 | double vx2 = tan(prj_rad_zx); |
228 | 228 | |
229 | - double t = 1 / sqrt(vx2 * vx2 + vy2 * vy2 + vz2 * vz2); | |
230 | - double nvx = t * vx2; | |
231 | - double nvy = t * vy2; | |
232 | - double nvz = t * vz2; | |
229 | + double t2 = 1.0 / sqrt(vx2 * vx2 + vy2 * vy2 + vz2 * vz2); | |
230 | + double nvx2 = t2 * vx2; | |
231 | + double nvy2 = t2 * vy2; | |
232 | + double nvz2 = t2 * vz2; | |
233 | 233 | //単位ベクトルからRzRy(逆回転)を求める |
234 | - s_ang rz, ry_rev; | |
234 | + angle rz, ry_rev; | |
235 | 235 | Util::_srv.getFaceAngClosely( |
236 | - (uint32_t)(nvx*10000000), | |
237 | - (uint32_t)(nvy*10000000), | |
238 | - (uint32_t)(nvz*10000000), | |
236 | + (uint32_t)(nvx2*10000000), | |
237 | + (uint32_t)(nvy2*10000000), | |
238 | + (uint32_t)(nvz2*10000000), | |
239 | 239 | rz, |
240 | 240 | ry_rev |
241 | 241 | ); |
242 | 242 | |
243 | 243 | //(0,0,1.0)を0°としX軸の正の方を向いて時計回りを正の角(rx_rev)を考える |
244 | 244 | //これは上で求めたrzと等しくなる。 |
245 | - int rx_rev = rz; | |
245 | + angle rx_rev = rz; | |
246 | 246 | //(0,0,1.0)を0°としY軸の正の方を向いて反時計回りを正の角(ry)を考える |
247 | 247 | //これは上で求めたry_revをD90ANGから引いた値である。 |
248 | - Util::PROJANG_ZY_ZX_TO_ROTANG_x_REV[prj_ang_zy][prj_ang_zx] = rx_rev*SANG_RATE; | |
249 | - Util::PROJANG_ZY_ZX_TO_ROTANG_y[prj_ang_zy][prj_ang_zx] = D90ANG - ry_rev*SANG_RATE; | |
248 | + Util::PROJANG_ZY_ZX_TO_ROTANG_x_REV[prj_s_ang_zy][prj_s_ang_zx] = rx_rev; | |
249 | + Util::PROJANG_ZY_ZX_TO_ROTANG_y[prj_s_ang_zy][prj_s_ang_zx] = D90ANG - ry_rev; | |
250 | 250 | } |
251 | 251 | } |
252 | 252 | } |
@@ -598,18 +598,19 @@ void Util::convVectorToRzRy(coord vx, | ||
598 | 598 | const angle prj_rXZ = Util::getAngle2D_first_quadrant(dx, dz); |
599 | 599 | const angle prj_rXY = Util::getAngle2D_first_quadrant(dx, dy); //Rz |
600 | 600 | angle rot_z, rot_y_rev; |
601 | + const double rate = ((1.0/SANG_RATE)*SR_AC); | |
601 | 602 | if (0 <= prj_rXZ && prj_rXZ <= D45ANG) { |
602 | - int xy = (int)(prj_rXY*0.01); | |
603 | - int xz = (int)(prj_rXZ*0.01); | |
604 | - rot_z = Util::PROJANG_XY_XZ_TO_ROTANG_z[xy][xz]; | |
605 | - rot_y_rev = Util::PROJANG_XY_XZ_TO_ROTANG_y_REV[xy][xz]; | |
603 | + s_ang prj_s_ang_rXY = (s_ang)(prj_rXY*rate); | |
604 | + s_ang prj_s_ang_rXZ = (s_ang)(prj_rXZ*rate); | |
605 | + rot_z = Util::PROJANG_XY_XZ_TO_ROTANG_z[prj_s_ang_rXY][prj_s_ang_rXZ]; | |
606 | + rot_y_rev = Util::PROJANG_XY_XZ_TO_ROTANG_y_REV[prj_s_ang_rXY][prj_s_ang_rXZ]; | |
606 | 607 | } else if (prj_rXZ <= D90ANG) { |
607 | 608 | const angle prj_rZY = Util::getAngle2D_first_quadrant(dz, dy); //Rz |
608 | 609 | const angle prj_rZX = Util::getAngle2D_first_quadrant(dz, dx); |
609 | - int zy = (int)(prj_rZY*0.01); | |
610 | - int zx = (int)(prj_rZX*0.01); | |
611 | - rot_z = Util::PROJANG_ZY_ZX_TO_ROTANG_x_REV[zy][zx]; | |
612 | - rot_y_rev = D90ANG - Util::PROJANG_ZY_ZX_TO_ROTANG_y[zy][zx]; | |
610 | + s_ang prj_s_ang_rZY = (s_ang)(prj_rZY*rate); | |
611 | + s_ang prj_s_ang_rZX = (s_ang)(prj_rZX*rate); | |
612 | + rot_z = Util::PROJANG_ZY_ZX_TO_ROTANG_x_REV[prj_s_ang_rZY][prj_s_ang_rZX]; | |
613 | + rot_y_rev = D90ANG - Util::PROJANG_ZY_ZX_TO_ROTANG_y[prj_s_ang_rZY][prj_s_ang_rZX]; | |
613 | 614 | } else { |
614 | 615 | throwCriticalException("範囲が破綻してます。prj_rXZ="<<prj_rXZ<<" 引数:"<<vx<<","<<vy<<","<<vz); |
615 | 616 | } |
@@ -686,27 +687,27 @@ void Util::convRzRyToVector(angle prm_rz, | ||
686 | 687 | //void SphereRadiusVectors::getVectorClosely(int out_faceY, int prm_angZ, uint16_t& out_x, uint16_t& out_y, uint16_t& out_z) { |
687 | 688 | //回転角によって卦限を考慮し、getVectorCloselyのパラメータ角(< 900)を出す |
688 | 689 | int xsign, ysign, zsign; |
689 | - s_ang rz, ry_rev; | |
690 | + angle rz, ry_rev; | |
690 | 691 | |
691 | 692 | if (0 <= prm_rz && prm_rz < D90ANG) { |
692 | - rz = (prm_rz - D0ANG) * (1.0 / SANG_RATE); | |
693 | + rz = (prm_rz - D0ANG); | |
693 | 694 | if (0 <= prm_ry && prm_ry < D90ANG) { //第五卦限 |
694 | - ry_rev = prm_ry * (1.0 / SANG_RATE); | |
695 | + ry_rev = prm_ry; | |
695 | 696 | xsign = 1; |
696 | 697 | ysign = 1; |
697 | 698 | zsign = -1; |
698 | 699 | } else if (prm_ry < D180ANG) { //第六卦限 |
699 | - ry_rev = (D180ANG - prm_ry) * (1.0 / SANG_RATE); | |
700 | + ry_rev = (D180ANG - prm_ry); | |
700 | 701 | xsign = -1; |
701 | 702 | ysign = 1; |
702 | 703 | zsign = -1; |
703 | 704 | } else if (prm_ry < D270ANG) { //第二卦限 |
704 | - ry_rev = (prm_ry - D180ANG) * (1.0 / SANG_RATE); | |
705 | + ry_rev = (prm_ry - D180ANG); | |
705 | 706 | xsign = -1; |
706 | 707 | ysign = 1; |
707 | 708 | zsign = 1; |
708 | 709 | } else if (prm_ry <= D360ANG) { //第一卦限 |
709 | - ry_rev = (D360ANG - prm_ry) * (1.0 / SANG_RATE); | |
710 | + ry_rev = (D360ANG - prm_ry); | |
710 | 711 | xsign = 1; |
711 | 712 | ysign = 1; |
712 | 713 | zsign = 1; |
@@ -714,25 +715,25 @@ void Util::convRzRyToVector(angle prm_rz, | ||
714 | 715 | throwCriticalException("getNormalizedVectorZY: なんかおかしいですぜ(1) prm_rz="<<prm_rz<<" prm_ry="<<prm_ry); |
715 | 716 | } |
716 | 717 | } else if (prm_rz < D180ANG) { |
717 | - rz = (D180ANG - prm_rz) * (1.0 / SANG_RATE); | |
718 | + rz = (D180ANG - prm_rz); | |
718 | 719 | |
719 | 720 | if (0 <= prm_ry && prm_ry < D90ANG) { //第二卦限 |
720 | - ry_rev = prm_ry * (1.0 / SANG_RATE); | |
721 | + ry_rev = prm_ry; | |
721 | 722 | xsign = -1; |
722 | 723 | ysign = 1; |
723 | 724 | zsign = 1; |
724 | 725 | } else if (prm_ry < D180ANG) { //第一卦限 |
725 | - ry_rev = (D180ANG - prm_ry) * (1.0 / SANG_RATE); | |
726 | + ry_rev = (D180ANG - prm_ry); | |
726 | 727 | xsign = 1; |
727 | 728 | ysign = 1; |
728 | 729 | zsign = 1; |
729 | 730 | } else if (prm_ry < D270ANG) { //第五卦限 |
730 | - ry_rev = (prm_ry - D180ANG) * (1.0 / SANG_RATE); | |
731 | + ry_rev = (prm_ry - D180ANG); | |
731 | 732 | xsign = 1; |
732 | 733 | ysign = 1; |
733 | 734 | zsign = -1; |
734 | 735 | } else if (prm_ry <= D360ANG) { //第六卦限 |
735 | - ry_rev = (D360ANG - prm_ry) * (1.0 / SANG_RATE); | |
736 | + ry_rev = (D360ANG - prm_ry); | |
736 | 737 | xsign = -1; |
737 | 738 | ysign = 1; |
738 | 739 | zsign = -1; |
@@ -741,24 +742,24 @@ void Util::convRzRyToVector(angle prm_rz, | ||
741 | 742 | } |
742 | 743 | |
743 | 744 | } else if (prm_rz < D270ANG) { |
744 | - rz = (prm_rz - D180ANG) * (1.0 / SANG_RATE); | |
745 | + rz = (prm_rz - D180ANG); | |
745 | 746 | if (0 <= prm_ry && prm_ry < D90ANG) { //第三卦限 |
746 | - ry_rev = prm_ry * (1.0 / SANG_RATE); | |
747 | + ry_rev = prm_ry; | |
747 | 748 | xsign = -1; |
748 | 749 | ysign = -1; |
749 | 750 | zsign = 1; |
750 | 751 | } else if (prm_ry < D180ANG) { //第四卦限 |
751 | - ry_rev = (D180ANG - prm_ry) * (1.0 / SANG_RATE); | |
752 | + ry_rev = (D180ANG - prm_ry); | |
752 | 753 | xsign = 1; |
753 | 754 | ysign = -1; |
754 | 755 | zsign = 1; |
755 | 756 | } else if (prm_ry < D270ANG) { //第八卦限 |
756 | - ry_rev = (prm_ry - D180ANG) * (1.0 / SANG_RATE); | |
757 | + ry_rev = (prm_ry - D180ANG); | |
757 | 758 | xsign = 1; |
758 | 759 | ysign = -1; |
759 | 760 | zsign = -1; |
760 | 761 | } else if (prm_ry <= D360ANG) { //第七卦限 |
761 | - ry_rev = (D360ANG - prm_ry) * (1.0 / SANG_RATE); | |
762 | + ry_rev = (D360ANG - prm_ry); | |
762 | 763 | xsign = -1; |
763 | 764 | ysign = -1; |
764 | 765 | zsign = -1; |
@@ -766,24 +767,24 @@ void Util::convRzRyToVector(angle prm_rz, | ||
766 | 767 | throwCriticalException("getNormalizedVectorZY: なんかおかしいですぜ(3) prm_rz="<<prm_rz<<" prm_ry="<<prm_ry); |
767 | 768 | } |
768 | 769 | } else if (prm_rz <= D360ANG) { |
769 | - rz = (D360ANG - prm_rz) * (1.0 / SANG_RATE); | |
770 | + rz = (D360ANG - prm_rz); | |
770 | 771 | if (0 <= prm_ry && prm_ry < D90ANG) { //第八卦限 |
771 | - ry_rev = prm_ry * (1.0 / SANG_RATE); | |
772 | + ry_rev = prm_ry; | |
772 | 773 | xsign = 1; |
773 | 774 | ysign = -1; |
774 | 775 | zsign = -1; |
775 | 776 | } else if (prm_ry < D180ANG) { //第七卦限 |
776 | - ry_rev = (D180ANG - prm_ry) * (1.0 / SANG_RATE); | |
777 | + ry_rev = (D180ANG - prm_ry); | |
777 | 778 | xsign = -1; |
778 | 779 | ysign = -1; |
779 | 780 | zsign = -1; |
780 | 781 | } else if (prm_ry < D270ANG) { //第三卦限 |
781 | - ry_rev = (prm_ry - D180ANG) * (1.0 / SANG_RATE); | |
782 | + ry_rev = (prm_ry - D180ANG); | |
782 | 783 | xsign = -1; |
783 | 784 | ysign = -1; |
784 | 785 | zsign = 1; |
785 | 786 | } else if (prm_ry <= D360ANG) { //第四卦限 |
786 | - ry_rev = (D360ANG - prm_ry) * (1.0 / SANG_RATE); | |
787 | + ry_rev = (D360ANG - prm_ry); | |
787 | 788 | xsign = 1; |
788 | 789 | ysign = -1; |
789 | 790 | zsign = 1; |
@@ -494,7 +494,6 @@ INT_PTR CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) { | ||
494 | 494 | break; |
495 | 495 | } |
496 | 496 | return (INT_PTR) FALSE; |
497 | - | |
498 | 497 | } |
499 | 498 | |
500 | 499 | //LRESULT SysMenuProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) |