Add testing code for vec3.angle_to

This commit is contained in:
jiangzhi.xie 2022-04-20 20:00:28 +08:00
parent 02d7604b17
commit 6bc7ec7718

View File

@ -225,9 +225,29 @@ describe("vec3:", function()
assert.is.equal(temp, vec3(-1, -2, -3))
end)
-- it("get two 3-vectors angle", function()
-- local a = vec3(1,2,3)
-- local b = vec3(3,2,1)
-- -- assert.is.equal(a:angle_to(b), 1)
-- end)
it("get two 3-vectors angle", function()
local angle_to = function(a, b)
local deg = math.deg(a:angle_to(b))
return string.format('%.2f', deg)
end
local a = vec3(1,2,3)
assert.is.equal(angle_to(a, vec3(3, 2, 1)), '44.42')
assert.is.equal(angle_to(a, vec3(0, 10, 0)), '57.69')
assert.is.equal(angle_to(a, vec3(0, -12, -10)), '157.51')
a = vec3.unit_z
assert.is.equal(angle_to(a, vec3(0, 10, 0)), '90.00')
assert.is.equal(angle_to(a, vec3(-123, 10, 0)), '90.00')
assert.is.equal(angle_to(a, vec3(-10, 0, 10)), '45.00')
assert.is.equal(angle_to(a, vec3(-10, 0, -10)), '135.00')
assert.is.equal(angle_to(a, vec3(0, -10, -10)), '135.00')
assert.is.equal(angle_to(a, vec3(0, 0, -10)), '180.00')
assert.is.equal(angle_to(a, vec3(0, 0, 100)), '0.00')
a = vec3(100, 100, 0)
assert.is.equal(angle_to(a, vec3(0, 0, 100)), '90.00')
assert.is.equal(angle_to(a, vec3(0, 0, -100)), '90.00')
assert.is.equal(angle_to(a, vec3(-10, -10, 0)), '180.00')
assert.is.equal(angle_to(a, vec3.unit_z), '90.00')
end)
end)