fire64
Житель форума
Дата регистрации: Apr 2007
Проживает: Москва
Сообщений: 2362
Возраст: 34
Рейтинг
|
Помогте разобрать код
C++ Source Code:
38 | int sub_4066B0(struct_a2 *a1, struct_a2_1 *a2) |
41 | // __int16 v3; // fps@1 |
42 | long double v4; // st6@1 |
46 | float v9; // [sp+0h] [bp-24h]@1 |
47 | float v10; // [sp+4h] [bp-20h]@1 |
48 | float v11; // [sp+Ch] [bp-18h]@1 |
49 | float v12; // [sp+10h] [bp-14h]@1 |
50 | float v13; // [sp+14h] [bp-10h]@1 |
51 | float v14; // [sp+20h] [bp-4h]@1 |
60 | v4 = sqrt(v10 * v10 + v9 * v9); |
66 | if ( /*v3 &*/ 0x4100 ) |
69 | a2->float4 = atan2(v12, -v11) * 57.29578; |
70 | a2->float0 = atan2(v4, -v2) * 57.29578; |
74 | a2->float4 = atan2(v9, v10) * 57.29578; |
75 | a2->float0 = atan2(v4, -v2) * 57.29578; |
76 | a2->float8 = atan2(v14, v13) * 57.29578; |
81 | int sub_407200(struct_test2 *a1, struct_a2 *a2) |
97 | v3 = a1->float4 * a1->float4; |
98 | v4 = a1->float8 * a1->float8; |
99 | a2->float0 = 1.0 - (v3 + v3) - (v4 + v4); |
100 | v5 = a1->float8 * a1->float12 + a1->float0 * a1->float4; |
101 | a2->float16 = v5 + v5; |
102 | v6 = a1->float8 * a1->float0; |
103 | v7 = a1->float12 * a1->float4; |
104 | a2->float32 = v6 + v6 - (v7 + v7); |
105 | v8 = a1->float0 * a1->float4; |
106 | v9 = a1->float8 * a1->float12; |
107 | a2->float4 = v8 + v8 - (v9 + v9); |
108 | v10 = a1->float0 * a1->float0; |
109 | v11 = a1->float8 * a1->float8; |
110 | a2->float20 = 1.0 - (v10 + v10) - (v11 + v11); |
111 | v12 = a1->float8 * a1->float4 + a1->float0 * a1->float12; |
112 | a2->float36 = v12 + v12; |
113 | v13 = a1->float8 * a1->float0 + a1->float12 * a1->float4; |
114 | a2->float8 = v13 + v13; |
115 | v14 = a1->float8 * a1->float4; |
116 | v15 = a1->float0 * a1->float12; |
117 | a2->float24 = v14 + v14 - (v15 + v15); |
119 | - (a1->float0 * a1->float0 |
120 | + a1->float0 * a1->float0) |
121 | - (a1->float4 * a1->float4 |
122 | + a1->float4 * a1->float4); |
127 | int sub_407400(struct_test2 *a1, struct_a2_2 *a2) |
132 | char v5; // [sp+4h] [bp-30h]@1 |
134 | sub_407200(a1, (struct_a2 *)&v5); |
135 | result = sub_4066B0((struct_a2 *)&v5, (struct_a2_1 *)a2); |
136 | v3 = a2->float4 * 0.017453292; |
137 | v4 = a2->float0 * 0.017453292; |
138 | a2->float0 = a2->float8 * 0.017453292; |
Учитывая, что у меня с тригонометрией всегда было плохо, прошу помочь и объяснить, что делает этот код.
Насколько я понимаю, это как-то связано с углами Эйлера и матрицей поворота.
__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей
Сообщить модератору | | IP: Записан
Сообщение: 84389
|