Permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
Use vector.dot and vector.cross in vector.angle
- Loading branch information
Showing
with
3 additions
and
5 deletions.
-
+3
−5
builtin/common/vector.lua
|
@@ -71,11 +71,9 @@ function vector.direction(pos1, pos2) |
|
|
end |
|
|
|
|
|
function vector.angle(a, b) |
|
|
local dotp = a.x * b.x + a.y * b.y + a.z * b.z |
|
|
local cpx = a.y * b.z - a.z * b.y |
|
|
local cpy = a.z * b.x - a.x * b.z |
|
|
local cpz = a.x * b.y - a.y * b.x |
|
|
local crossplen = math.sqrt(cpx ^ 2 + cpy ^ 2 + cpz ^ 2) |
|
|
local dotp = vector.dot(a, b) |
|
|
local cp = vector.cross(a, b) |
|
|
local crossplen = vector.length(cp) |
|
|
return math.atan2(crossplen, dotp) |
|
|
end |
|
|
|
|
|