Lua 2d旋转为y提供了奇怪的输出

时间:2016-01-08 01:49:47

标签: lua rotation 2d sin cos

我需要能够使用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

当我在计算器上测试计算时,我得到了正确的答案。必须是代码方面我做错了。

1 个答案:

答案 0 :(得分:0)

欢迎来到浮点世界。

当你将90度转换为弧度时,你并没有完全得到π/ 2,而是非常接近它。这个角度的余弦不完全是0,但你看到的数字非常小。

此问题并非特定于Lua。