0

In the following author rotates with unit vector to find that rotation does not change it. But why does author take the vector to be rotated as unit vector, not any other vector, $ \vec{v}.$

Is it enough to use unit element itself while proving that it is the unit element?

Otherwise, what is the intention here?

enter image description here

https://www.geometrictools.com/Documentation/Quaternions.pdf

Edit : Actually unit vector rotation changes a vector. So author rotate a vector by itself to test if it's unchanged and determine the rotation formula is correct. Because rotating a vector by itself will result same vector as this will not actually change direction of vector.

  • Do you understand what a 3D rotation does, and what a rotation axis is? – Somos Sep 17 '20 at 14:08
  • I know about rotation @Somos but why did he used unit vector and rotate around itself instead of rotating another vector by unit? – lockedscope Sep 17 '20 at 14:11
  • As the author states: "To see that $\hat{u}$ is a unit rotation axis we need only show that $\hat{u}$ is unchanged by the rotation." That is exactly what he does next where he shows that $R(\hat{u})=\hat{u}$. – Somos Sep 17 '20 at 14:14
  • So, i don't understand how using same thing proves that it is unit. Could not we use another non-unit vector for this? – lockedscope Sep 17 '20 at 14:28
  • A rotation axis is a straight line through the origin. Each determines a vector from the origin and each is a scalar multiple of a unit vector. The same proof applies to any vector in the rotation axis. Try it and see for yourself. – Somos Sep 17 '20 at 14:44
  • Ok that's fine, i see it a little bit hacky but i may accept it but still it does not fit together well for me. Actually, rotating something around itself and saying that it is not changed. – lockedscope Sep 17 '20 at 14:52
  • That is why I asked if you understood what a rotation axis was. It seems you don't really understand this. By definition it is the set of points that are fixed or unchanged by a 3D rotation. The points not on the rotation axis are moved or changed by a 3D rotation. – Somos Sep 17 '20 at 15:06
  • @Somos, i think i understand :(. A vector is rotated around the axis with given angle defined by the quaternion when rotation formula applied. But when both the vector and rotation quaternion are same, it seems weird to me, like choosing "earth spinning around itself so it does not change" instead of "moon spinning around earth and it returns to the same position after a full rotation". – lockedscope Sep 17 '20 at 15:17

3 Answers3

1

The unit vector $\hat u$ identifies the axis of rotation. The direction of the vector also helps identify the direction of rotation.

There is no absolute reason why we must use a unit vector to identify the axis; in principle any vector pointing in the same direction would identify the same axis and the same orientation of rotations around that axis. That is, the vector $u = r\hat u,$ where $r$ is a real number and $r > 0,$ identifies the same axis and the same orientation.

But all the author needs to do is to identify the axis and orientation. We only need one vector to do that. Since we have all these vectors that can do that job, why not choose one that is convenient for the proof? And $\hat u$ is precisely that vector.

Your "proof" is flawed; you have forgotten (or did not learn) that multiplication of quaternions is non-commutative. So in general

$$ v (\cos\theta - u\sin\theta) \neq (\cos\theta - u\sin\theta)v, $$

and so you cannot just "move" the $v$ to the right of $(\cos\theta - u\sin\theta)$ in order to multiply $(\cos\theta + u\sin\theta)$ and $(\cos\theta - u\sin\theta)$ directly. The proof in the linked document works because it uses the same quaternion $\hat u$ in both places and not two quaternions $u$ and $v$, and when you are multiplying $\hat u$ times $\hat u$ it naturally makes no difference which copy of $\hat u$ you use first.

And yes, it is a very strange and wonderful thing that merely by adding a real component (which can be zero) to the "axis vector" quaternion and scaling both components so that you have a unit vector again, you get a rotation around the "axis vector."

David K
  • 98,388
  • So, what do you think about non-commutative problem in this question: https://math.stackexchange.com/questions/3828434/proof-of-rotation-by-pure-unit-quaternions i could not exactly find out the non-commutative problem there. – lockedscope Sep 17 '20 at 21:22
  • 1
    The definition of versor allows a versor to have a non-zero real part. If the real part is zero, the versor is a unit vector (according to the interpretation we have followed in this question). It is true that a versor with zero real part defines a rotation by $\pi.$ It is a special case of https://en.wikipedia.org/wiki/Quaternions_and_spatial_rotation#Proof_of_the_quaternion_rotation_identity where we take $\alpha=\pi.$ But it is necessary to calculate this differently than in your other question. – David K Sep 18 '20 at 01:13
  • I thought about it again and could not come to a meaningful conclusion. Actually, for rotation formula, rotation axis must be a unit vector. And a rotation would change a vector, otherwise its ridiculous to get same vector with same direction after rotation. So, we could only say that a vector when rotated around itself will not change. So, is author trying to prove that unit rotation axis does not change a vector? But only a vector rotating around itself will not change otherwise even a unit rotation axis will change a vector. – lockedscope Sep 18 '20 at 08:33
  • On the other hand, if he is trying to prove a vector rotating around itself does not change what is the point of this? – lockedscope Sep 18 '20 at 08:35
  • 1
    If you have a rotation, every vector changes except the ones that are on the axis of rotation. So if you find a vector that has not changed, you have found the rotation axis. The point of the proof is that when it starts, we have an operation defined by multiplication by a quaternion on one side and its conjugate on the other, which the author has just proved is a rotation. We do not yet know which rotation it is. In particular we do not yet know that the "vector" part of the quaternion will be on the axis of rotation. We find out at the end of the proof that it is. – David K Sep 18 '20 at 11:45
  • 1
    In the spirit of other things you find online, instead of "Quaternion Algebra and Calculus", the title of that paper should be "Try this weird trick for multiplying lists of four numbers together. You won't believe what happens next!" It certainly is not obvious in advance (to me, at least) that these just by defining the multiplication of $i,j,k$ this way we would get all this, especially the part where you can deduce the rotation axis just by looking at the coefficients of $i,$ $j,$ and $k.$ Hamilton was a genius. – David K Sep 18 '20 at 11:56
  • I forgot that we are working with quaternions, but think them as a vector. So, when we think them as quaternions we could expect that a multiplication/division($u^*=u^{-1}$ though i am not sure about division by unit) with a unit quaternion gives same quaternion. – lockedscope Sep 18 '20 at 12:20
  • 1
    If you change the rules of multiplication for the numbers in the quaternion, you could still think of the imaginary part as a vector, but what are the chances that the multiplication $\hat u\hat u\hat u^$ would result in $\hat u$? That is the amazing part: these particular* non-obvious rules do this. Moreover, why multiply by the conjugate on the other side? That doesn't work for 2D rotation by complex numbers. – David K Sep 18 '20 at 12:33
  • So, is it correct to say that multiplication of a quaternion with a unit quaternion gives itself? I don't think so because of this https://math.stackexchange.com/questions/221427/triple-quaternion-multiplication – lockedscope Sep 18 '20 at 12:44
  • In that question, if $v = q,$ notice that on the right-hand side you have $q_0 = 0$, $\vec q \cdot \vec v =1,$ and $\vec q \times \vec v = 0$, so once you have added everything up the result is just $\vec q.$ If $v \neq q$ then of course you may get a different result. Nobody said you would always get the same vector back again for every vector; that's not a rotation! – David K Sep 18 '20 at 12:51
  • I actually mixed up unit(or normalized) quaternion with an identity quaternion by the terms of ring unit(identity) element. They are not same things, aren't they? A normalized(unit) quaternion is not an identity quaternion but an identity is a unit quaternion. – lockedscope Sep 18 '20 at 13:08
  • I think there is a buzz in math world, unit and identity used interchangeably but they mean different things. So, are there any clear math book or article about them? – lockedscope Sep 18 '20 at 13:25
  • Here http://www.cs.cmu.edu/afs/cs/academic/class/16741-s07/www/lectures/Lecture8.pdf identity and unit quaternions defined. Also here http://www.ncsa.illinois.edu/People/kindr/emtc/quaternions/ – lockedscope Sep 18 '20 at 14:17
0

Instead of taking the vector to be rotated as a unit vector, i think, we could take any vector.

So, with an arbitrary vector, $\vec{v}$ and $\vec{q}=\vec{u}$

$$R(\vec{v}) = \vec{q}\vec{v}\vec{q}^*$$ $$=(cos θ + \vec{u} sin θ)\vec{v}(cos θ − \vec{u}sin θ)$$ $$=((cos θ)^2 - \vec{u}^2 (sin θ)^2)\vec{v}$$ $$=((cos θ)^2 + (sin θ)^2)\vec{v}$$ $$=\vec{v}$$

Edit: This is flawed because of non-commutativity neglected. See the answer by David K.

0

Following proof of rotation seems more comprehensive to me than the one in question. It rotates unit quaternion around itself but it rotates $k$ multiple of its rotation axis. So, a kq is a vector with same direction as "rotation axis vector" but with different magnitude. (This is important because rotation formula rotates a vector, not a quaternion.) Thus, we have a different vector but in same direction so rotating around same direction would not change a vector. So when we have same vector after applying formula then we can say it is a rotation.

enter image description here http://graphics.stanford.edu/courses/cs348a-17-winter/Papers/quaternion.pdf