From 293a6bfe10983d50e398af6b707a2c4307c7573a Mon Sep 17 00:00:00 2001 From: Michael Kirsch Date: Sat, 25 May 2019 20:53:41 +0200 Subject: [PATCH] quaternions take half the angle the represent --- xs/src/libslic3r/TransformationMatrix.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xs/src/libslic3r/TransformationMatrix.cpp b/xs/src/libslic3r/TransformationMatrix.cpp index c7ff1d393..fc85316cf 100644 --- a/xs/src/libslic3r/TransformationMatrix.cpp +++ b/xs/src/libslic3r/TransformationMatrix.cpp @@ -311,13 +311,13 @@ TransformationMatrix TransformationMatrix::mat_rotation(double q1, double q2, do TransformationMatrix TransformationMatrix::mat_rotation(double angle_rad, const Pointf3 &axis) { double s, factor, q1, q2, q3, q4; - s = sin(angle_rad); + s = sin(angle_rad/2); factor = axis.x*axis.x + axis.y*axis.y + axis.z*axis.z; factor = s / sqrt(factor); q1 = factor*axis.x; q2 = factor*axis.y; q3 = factor*axis.z; - q4 = cos(angle_rad); + q4 = cos(angle_rad/2); return mat_rotation(q1, q2, q3, q4); }