两个向量之间的角度是多少?

这个度数计算有什么问题?

我选择了两个向量,本应该是90度。

我试过用cos、cos^-1,和不用cos计算。但是我的代码输出是:

0(不使用cos计算)

1(余弦)

1.5707963267949(余弦^-1(acos))

local square = math.sqrt;
local weaponVector, hitVector = , {x = 0, y = 0, z = 1,}, {x = 0, y = 1, z = 0,};
local xW, yW, zW = weaponVector.x, weaponVector.y, weaponVector.z;
local xH, yH, zH = hitVector.x, hitVector.y, hitVector.z;
local angleBetweenWeaponAndHitDirection = math.acos(math.abs(xW*xH+yW*yH+zW*zH)
            / (square(xW*xW+yW*yW+zW*zW) * square(xH*xH+yH*yH+zH*zH)));
if (angleBetweenWeaponAndHitDirection>180) then
    angleBetweenWeaponAndHitDirection = 360-angleBetweenWeaponAndHitDirection;
end
print(angleBetweenWeaponAndHitDirection)
print(math.cos(angleBetweenWeaponAndHitDirection))
print(math.acos(angleBetweenWeaponAndHitDirection))

原文链接 https://stackoverflow.com/questions/7092925

点赞
stackoverflow用户380521
stackoverflow用户380521

1.57079 是正确的答案,但是使用 弧度制

要将弧度转换为角度,需要乘以 180/pi

2011-08-17 12:43:01
stackoverflow用户14955
stackoverflow用户14955

1.5707963267949 是 $cos^{-1}(acos)$ 的结果,这看起来像是 $90$ 度 ($\pi/2$)。

2011-08-17 12:43:47
stackoverflow用户898478
stackoverflow用户898478

数学函数使用弧度制,因此您的比较和操作 必须 使用弧度,而不是角度。

2011-08-17 12:44:55