我需要能够使用lua-script执行2d旋转。我想,或者至少我认为我知道如何进行2d旋转,对于x它可以工作,但是对于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
当我在计算器上测试计算时,我得到了正确的答案。必须是代码方面我做错了。
答案 0 :(得分:0)
欢迎来到浮点世界。
当你将90度转换为弧度时,你并没有完全得到π/ 2,而是非常接近它。这个角度的余弦不完全是0,但你看到的数字非常小。
此问题并非特定于Lua。