• Create Account

hbdevelop1

Member Since 28 Nov 2012
Offline Last Active Nov 02 2013 07:21 PM

glPopMatrix does not get what was pushed

08 October 2013 - 07:43 AM

Hello,

I have noticed that I don't get the same matrix I pushed !!

Does anybody have an idea ?

Thank you

Here is the code I am using:

#include <assert.h>

int DrawGLScene(GLvoid)
{
rtri+=.2f;
GLdouble mat5[16],mat6[16];

glMatrixMode(GL_MODELVIEW);

glRotatef(rtri,0.0f,1.0f,0.0f);

glGetDoublev(GL_MODELVIEW_MATRIX, (GLdouble *)&mat5);

glPushMatrix();
glPopMatrix();

glGetDoublev(GL_MODELVIEW_MATRIX, (GLdouble *)&mat6);
assert(matequal(mat5,mat6));                                                               <----- execution breaks here
}

bool matequal(GLdouble *N,GLdouble *M)
{
if(
M[0]==N[0] && M[1]==N[1] && M[2]==N[2] && M[3]==N[3] &&
M[4]==N[4] && M[5]==N[5] && M[6]==N[6] && M[7]==N[7] &&
M[8]==N[8] && M[9]==N[9] && M[10]==N[10] && M[11]==N[11] &&
M[12]==N[12] && M[13]==N[13] && M[14]==N[14] && M[15]==N[15]  )
return true;

return false;
}

Basic rotation matrices are clockwise !

10 January 2013 - 08:18 PM

Hello,

I have noticed that the basic 3D rotation matrices in  http://en.wikipedia.org/wiki/Rotation_matrix

rotate vectors clockwise and not counter-clockwise, when the axis about which they occur points toward me !

For example: the following operation yields the vector (0,1,0)
[1      0      0     ]   [0]
[0  cos(90)  sin(90) ] X [0]
[0  -sin(90) cos(90) ]   [1]

Am I missing something ?

Quaternions concatenation is the sum of angles ? (2)

28 November 2012 - 08:46 AM

Hello,

With the two quaterions q1=q2=(cos theta/2, sin theta/2, 0, 0)
Does the product q1q2 yield a third quaternion q3 equals (cos theta, sin theta, 0, 0) ?

This is the result I am expecting to have from my quaternion class, but I don't have it.
My expectation is based on the fact that the concatenation of q1 and q2 will yield a quaternion representing both rotations. That means, for me, the sum of the angles each quaternion represents if the rotations are around the same vector.

So, does the product q1q2 yield a third quaternion q3 equal (cos theta, sin theta, 0, 0) ?
Or is there anything wrong with my assumption ?

Quaternions concatenation is the sum of angles ?

28 November 2012 - 08:01 AM

Hello,

With the two quaterions q1=q2=(pi/8, 1, 0, 0)
Does the product q1q2 yield a third quaternion q3 equal (pi/4, 1, 0, 0) ?

This is the result I am expecting to have from my quaternion class, but I don't have it.
My expectation is based on the fact that the concatenation of q1 and q2 will yield a quaternion representing both rotations. That means, for me, the sum of the angles each quaternion represents if the rotations are around the same vector.

So, does the product q1q2 yield a third quaternion q3 equal (pi/4, 1, 0, 0) ?
Or is there anything wrong with my assumption ?