cu dedicatie:
Cod sursă:
void Matrix::ToRotation(const float degrees[3])
{
float angle;
float sx, sy, sz, cx, cy, cz;
angle = Math::DegToRadians( degrees[1] );
sx = sinf(angle);
cx = cosf(angle);
angle = Math::DegToRadians( degrees[0] );
sy = sinf(angle);
cy = cosf(angle);
if ( degrees[2] )
{
angle = Math::DegToRadians( degrees[2] );
sz = sinf(angle);
cz = cosf(angle);
}
else
{
sz = 0;
cz = 1;
}
_11 = cy * cz ;
_21 =-cy * sz ;
_31 = sy ;
_41 = 0;
_12 = sx * sy * cz - cx * sz ;
_22 = sx * sy * sz + cx * cz ;
_32 =-sx * cy ;
_42 = 0;
_13 =-cx * sy * cz + sx * sz ;
_23 = cx * sy * sz + sx * cz ;
_33 = cx * cy ;
_43 = 0;
_14 = _24 = _34 = 0;
_44 = 1;
}