Мне нужно иметь возможность выполнять 2d вращения с помощью lua-script. Я думаю, или, по крайней мере, думал, что знаю, как делать 2d-вращения, а для x это работает, но для y я получаю странное значение.Lua 2d вращение дает wierd выход для y
Код:
rad = math.rad;
cos = math.cos;
sin = math.sin;
w = 90;
vec = {0, 1};
new_vec = {0, 0};
new_vec[1] = vec[1] * cos(rad(w)) - vec[2] * sin(rad(w));
new_vec[2] = vec[1] * sin(rad(w)) + vec[2] * cos(rad(w));
print("original vector_xy: ", "x= ", vec[1], "y= ", vec[2]);
print("new vector_xy: ", "x= ", new_vec[1], "y= ", new_vec[2]);
выход:
original vector_xy: x= 0 y= 1
new vector_xy: x= -1 y= 6.1232339957368e-017
Когда я проверить расчеты на калькуляторе я получаю правильный ответ. Должно быть, что-то кодовое я делаю неправильно.
Я вижу. Есть ли способ заставить Луа принять степени в качестве аргумента для cos и sin, что бы в значительной степени решить ее :) – Mengus
Или, может быть, можно было бы округлить значение как-то до пола до 0? – Mengus
неважно, я только что реализовал свои собственные функции cos и sin, и пусть они берут градусы, проблема решена, спасибо за вашу помощь! :) – Mengus