Jump to content

  • Log In with Google      Sign In   
  • Create Account

We're offering banner ads on our site from just $5!

1. Details HERE. 2. GDNet+ Subscriptions HERE. 3. Ad upload HERE.


Sword7

Member Since 22 Apr 2013
Offline Last Active May 13 2014 08:27 PM

Posts I've Made

In Topic: Help! iterator problem

31 December 2013 - 12:14 AM

Ok, I figured them out.  I decided to remove 'const' from function call and all problems were gone.

 

Non const iterator did not work in const function calls because compiler complaint about 'no match for operator =' error messages at for(...) statement.

 

I am using MinGW with GNU C++ 4.8.2 compiler.


In Topic: Angular Velocity and Quaternion - problems

25 April 2013 - 07:04 PM

Hello folks,

 

Good news!!! I now found a problem and corrected formula. It finally works!!!

 

Quaternion w(0, angularVelocity);

 

dr = 0.5 * (orientation * w);

orientation += (dr * dt);

orentation.normalize();

 

It now rotates in local axes!!

 

If w * orientation, it rotates in world axes.

if orientation * w, it rotates in local axes.

 

I googled and found article that explains about world axes and local axes in quaternions.

 

http://stackoverflow.com/questions/9715776/using-quaternions-for-opengl-rotations

http://www.arcsynthesis.org/gltut/Positioning/Tut08%20Quaternions.html


In Topic: Angular Velocity and Quaternion - problems

24 April 2013 - 06:09 PM

Ok, I changed that lines to:

 

dr = orientation * (angularVelocity * 0.5) * orientation.conjugate();

orientation += (dr * dt);

 

I resolved a problem but I got another new problem.  For example, When I roll right to 90 degress, tried to yaw right but rotate 45 degrees between pitch and yaw axis.  Also, I continued to play controls, controls became locked out.  I can't yaw, pitch, or roll anymore after a few minutes when w in orentation became zero [ 0 (x, y, z)]. 

 

I tried that 'dr = orientation * angularVelocity * orientation.conjugate()' but it resulted the same.

 

Quaternion<double> conjugate()

{

   return Quaternion<double>(w, -x, -y, -z);

}

 

Right?

 

Thanks!

Sword7


PARTNERS