• FEATURED

View more

View more

View more

### Image of the Day Submit

IOTD | Top Screenshots

### The latest, straight to your Inbox.

Subscribe to GameDev.net Direct to receive the latest updates and exclusive content.

# [Answered] Matrix create from XYZ rotation: scale problem

Old topic!

Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

2 replies to this topic

### #1thecheeselover  Members

Posted 06 October 2012 - 08:00 PM

Hi

I've been coding my own math library and I got a bug when I create a Matrix from a rotation across the X, Y and Z axises. The bug is that it also scales my vectors. I know it might be hard to understand my code, but you are my only hope left (I checked and checked again my code a lot of times) so here's my code:

static Matrix4x4<T> CreateFromRotationXYZ_S(const T &radiansX, const T &radiansY, const T &radiansZ)
{
Matrix4x4<T> result;
result.m14 = 0;
result.m24 = 0;
result.m34 = 0;
result.m41 = 0;
result.m42 = 0;
result.m43 = 0;
result.m44 = 1;
return result;
}


Thank you
Hide yo cheese! Hide yo wife!

### #2xissburg  Members

Posted 06 October 2012 - 09:16 PM

Ouch. You better create a simple rotation matrix for each axis and multiply(compose) all three to obtain the final rotation matrix.
.

### #3haegarr  Members

Posted 07 October 2012 - 03:05 AM

Mistakes are at least in the formulas of m21 and m22 (both showing 3 summands), because their format has to be the same as those of m31 and m32 (both showing 2 summands).

As a hint: The length of each column vector and each row vector in a pure rotation matrix is 1. If the length differs from 1 then scaling will occur.

Edited by haegarr, 07 October 2012 - 03:07 AM.

Old topic!

Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.