# Invert quaternion X,Z rotation

This topic is 1790 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

## Recommended Posts

Hi everyone,

I have a device that returns me all four components of a quaternion (X,Y,Z,W).
The problem is that,the rotation around the X and Z axis are inverse (i rotate the device left,i get a right rotation etc)
For what i know that quaternion rapresent orientation referring to an 'arbitrary' axis so i can't just negate the rotation like i would do with euler angles as far as i know
My code is:

Quaternion rotation = new Quaternion(X,Z,Y, -W);  //i had to swap Z and Y due to the device axis orientation so i had to negate W
model.World = Matrix.CreateFromQuaternion(rotation)*Matrix.CreateTranslation(Vector3.Zero);


Any ideas on how i can invert the rotation around X and Z?

##### Share on other sites

Where did you get X, Y, Z and W from? Can you describe the "device axis orientation" and in general your coordinate conventions in more detail?

##### Share on other sites

The problem is that,the rotation around the X and Z axis are inverse (i rotate the device left,i get a right rotation etc)

I think your device is using left-handed coordinates, and your code is using right-handed coordinates (or the other way around.)

Quaternion rotation = new Quaternion(X,Z,Y, -W); //i had to swap Z and Y due to the device axis orientation so i had to negate W

Try:

Quaternion rotation = new Quaternion(X, Y, -Z, W);

##### Share on other sites

The problem is solved,i don't know why but for some strange reason (maybe not if someone knows the math behind quaternion,which i don't)

negating both Z and Y axis gave the correct results.

Basically now eveything is working with:

Quaternion rotation = new Quaternion(X, -Z, -Y, -W);


I tried before to negate one axe but instead of inverting the orientation,it was like swapping axis again.

Thanks.

##### Share on other sites

You can try negating only X instead of Y, Z and W. Not that it matters much, but perhaps it's easier to think of what that does.

1. 1
2. 2
Rutin
18
3. 3
4. 4
5. 5

• 9
• 9
• 9
• 14
• 12
• ### Forum Statistics

• Total Topics
633300
• Total Posts
3011266
• ### Who's Online (See full list)

There are no registered users currently online

×