diff --git a/quaternion.lua b/quaternion.lua index 4aed970626dbe0c7ff6e51435f7769ad223620fe..d0af7da243da330a413ec6d21177651eb61ac7c5 100644 --- a/quaternion.lua +++ b/quaternion.lua @@ -32,10 +32,10 @@ function quaternion.identity() return quaternion.new() end function quaternion.mul_quaternion(q1, q2) local b, c, d, a = q1:normalized():unpack() local f, g, h, e = q2:normalized():unpack() - return quaternion.new(a*e - b*f - c*g - d*h, - a*f + b*e + c*h - d*g, + return quaternion.new(a*f + b*e + c*h - d*g, a*g + c*e + d*f - b*h, - a*h + d*e + b*g - c*f) + a*h + d*e + b*g - c*f, + a*e - b*f - c*g - d*h) end -- Returns a vector equal to the vector v (size >= 3)