# Maths - Rotations using quaternions - mail from zit0un

From: Zeiht'Oon
To: Martin Baker
Date: 14:38 17-11-04 GMT
Subject: Re: Quaternoins

Hello Martin !

I didn't give any news since I left my quaternion manipulation for a while, but now I'm back !
And I think I noticed a little mistake in your page on "rotations using quaternion"
<https://www.euclideanspace.com/maths/algebra/realNormedAlgebra/quaternions/transforms/index.htm>

```When you develop the product P2 = q * P1 * q' you get P2.w not null, but my    computations give me such a value.
Maybe you forgot one sign. My computations give
P2 =
(w)
0(x)
2 2
qx x + 2 qx qy y + 2 qx qz z + qw x + 2 qw qy z - 2 qw qz y 2 2
- qz x - qy x(y)
2 2 2
2 qy qx x + qy y + 2 qy qz z + 2 qz qw x - qz y + qw y 2
- 2 qw qx z - qx y(z)
2 2
2 qz qx x + 2 qz qy y + qz z - 2 qy qw x - qy z + 2 qx qw y 2 2
- qx z + qw z```

Have a nice day !

zit0un

---------------------------
From: Zeiht'Oon
To: Martin Baker
Date: 14:54 17-11-04 GMT
Subject: Quaternions : next episode...

Hi Martin, it's me again !

I forgot to tell you that I think it would be better to do the following on the "Rotations using quaternion" page :
when you want to develop P2 = q * P1 * q', you should take P1=(1,x,y,z), I think.
This is more consistent with a 3D representation of the points where P1 = (x/1,y/1,z/1)...

so the result is P2.w = qwÂ²+qxÂ²+qyÂ²+qzÂ² = 1 (as q is normalized) and nothing change for the other coordinates.

If you have Maple, the attached file could be useful...

Have a nice day !

zit0un

{VERSION 5 0 "IBM INTEL NT" "5.0" }
{USTYLETAB {CSTYLE "Maple Input" -1 0 "Courier" 0 1 255 0 0 1 0 1 0 0
1 0 0 0 0 1 }{CSTYLE "2D Math" -1 2 "Times" 0 1 0 0 0 0 0 0 2 0 0 0 0
0 0 1 }{CSTYLE "2D Output" 2 20 "" 0 1 0 0 255 1 0 0 0 0 0 0 0 0 0 1 }
{PSTYLE "Normal" -1 0 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2
2 2 1 1 1 1 }1 1 0 0 0 0 1 0 1 0 2 2 0 1 }{PSTYLE "Maple Output" -1
11 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }3 3 0
0 0 0 1 0 1 0 2 2 0 1 }{PSTYLE "Maple Output" -1 12 1 {CSTYLE "" -1
-1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }1 3 0 0 0 0 1 0 1 0 2 2
0 1 }}
{SECT 0 {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 128 "q_mult := ((w,x,y,z
),(a,b,c,d)) -> (w*a - x*b - y*c - z*d, w*b + x*a + y*d - z*c, w*c - x
*d + y*a + z*b, w*d + x*c - y*b + z*a);" }}{PARA 12 "" 1 "" {XPPMATH
20 "6#>%'q_multGf*6*%\"wG%\"xG%\"yG%\"zG%\"aG%\"bG%\"cG%\"dG6\"6\$%)ope
ratorG%&arrowGF/6&,**&9\$\"\"\"9(F7F7*&9%F79)F7!\"\"*&9&F79*F7F<*&9'F79
+F7F<,**&F6F7F;F7F7*&F:F7F8F7F7*&F>F7FBF7F7*&FAF7F?F7F<,**&F6F7F?F7F7*
&F:F7FBF7F<*&F>F7F8F7F7*&FAF7F;F7F7,**&F6F7FBF7F7*&F:F7F?F7F7*&F>F7F;F
7F<*&FAF7F8F7F7F/F/F/" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 35 "N:
=q_mult((qw,qx,qy,qz),(1,x,y,z));" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>
%\"NG6&,*%#qwG\"\"\"*&%#qxGF(%\"xGF(!\"\"*&%#qyGF(%\"yGF(F,*&%#qzGF(%
\"zGF(F,,**&F'F(F+F(F(F*F(*&F.F(F2F(F(*&F1F(F/F(F,,**&F'F(F/F(F(*&F*F(
F2F(F,F.F(*&F1F(F+F(F(,**&F'F(F2F(F(*&F*F(F/F(F(*&F.F(F+F(F,F1F(" }}}
{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 51 "M:=q_mult( N[1],N[2],N[3],N[
4], (qw,-qx,-qy,-qz) );" }{TEXT -1 0 "" }}{PARA 12 "" 1 "" {XPPMATH
20 "6#>%\"MG6&,**&,*%#qwG\"\"\"*&%#qxGF*%\"xGF*!\"\"*&%#qyGF*%\"yGF*F.
*&%#qzGF*%\"zGF*F.F*F)F*F**&,**&F)F*F-F*F*F,F**&F0F*F4F*F**&F3F*F1F*F.
F*F,F*F**&,**&F)F*F1F*F**&F,F*F4F*F.F0F**&F3F*F-F*F*F*F0F*F**&,**&F)F*
F4F*F**&F,F*F1F*F**&F0F*F-F*F.F3F*F*F3F*F*,**&F(F*F,F*F.*&F6F*F)F*F**&
F;F*F3F*F.*&F@F*F0F*F*,**&F(F*F0F*F.*&F6F*F3F*F**&F;F*F)F*F**&F@F*F,F*
F.,**&F(F*F3F*F.*&F6F*F0F*F.*&F;F*F,F*F**&F@F*F)F*F*" }}}{EXCHG }
{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 63 "expand(M[1]);\nfactor(expand
(M[2]));\nexpand(M[3]);\nexpand(M[4]);" }}{PARA 11 "" 1 "" {XPPMATH
20 "6#,**\$)%#qwG\"\"#\"\"\"F(*\$)%#qxGF'F(F(*\$)%#qyGF'F(F(*\$)%#qzGF'F(F
(" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#,2*&)%#qxG\"\"#\"\"\"%\"xGF(F(**F
'F(F&F(%#qyGF(%\"yGF(F(**F'F(F&F(%#qzGF(%\"zGF(F(*&)%#qwGF'F(F)F(F(**F
'F(F2F(F+F(F/F(F(**F'F(F2F(F.F(F,F(!\"\"*&)F.F'F(F)F(F5*&)F+F'F(F)F(F5
" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#,2**\"\"#\"\"\"%#qyGF&%#qxGF&%\"xG
F&F&*&)F'F%F&%\"yGF&F&**F%F&F'F&%#qzGF&%\"zGF&F&**F%F&F.F&%#qwGF&F)F&F
&*&)F.F%F&F,F&!\"\"*&)F1F%F&F,F&F&**F%F&F1F&F(F&F/F&F4*&)F(F%F&F,F&F4
" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#,2**\"\"#\"\"\"%#qzGF&%#qxGF&%\"xG
F&F&**F%F&F'F&%#qyGF&%\"yGF&F&*&)F'F%F&%\"zGF&F&**F%F&F+F&%#qwGF&F)F&!
\"\"*&)F+F%F&F/F&F2**F%F&F(F&F1F&F,F&F&*&)F(F%F&F/F&F2*&)F1F%F&F/F&F&
" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG }{EXCHG }
{EXCHG }}{MARK "9" 0 }{VIEWOPTS 1 1 0 1 1 1803 1 1 1 1 }{PAGENUMBERS
0 1 2 33 1 1 }