Go Premium for a chance to win a PS4. Enter to Win

x
?
Solved

a moving function based on 3 (euler) angles

Posted on 2004-08-28
2
Medium Priority
?
219 Views
Last Modified: 2013-12-26
I'm still writing a program with a spaceship that moves freely through empty space.

The following function is supposed to handle the movements. The 3 lines of code seem to move the ship in
the right direction, but I want to know how to combine them so my ship can move right in all 3 (or at least 2)
directions. Hoping this function works in the first place.

// there is a ship that has a ('input')direction and a ('output')position
// the direction is noted by 3 angles ranging from 0=< angle <360, position by a vector shipPos.X, Y, Z
private void Move(float speed)
{
                // direction 1, let it yaw doesn't combine with 3 lines below direction 2
      shipPos.X += -speed * (float)Math.Sin(Geometry.DegreeToRadian(yaw));
      shipPos.Y += 0.0f;
      shipPos.Z += -speed * (float)Math.Cos(Geometry.DegreeToRadian(yaw));
      // direction 2, let it pitch doesn't combine with above 3 lines      
      shipPos.X += 0.0f;
      shipPos.Y += speed * (float)Math.Sin(Geometry.DegreeToRadian(pitch));
      shipPos.Z += -speed * (float)Math.Cos(Geometry.DegreeToRadian(pitch));
      // maybe let it roll also            
      //shipPos.X += -speed * (float)Math.Cos(Geometry.DegreeToRadian(roll));
      //shipPos.Y += 0.0f;
      //shipPos.Z += -speed * (float)Math.Sin(Geometry.DegreeToRadian(roll));
}
0
Comment
Question by:DaFou
2 Comments
 
LVL 85

Accepted Solution

by:
ozo earned 2000 total points
ID: 11949107
X =  -(float)Math.Sin(Geometry.DegreeToRadian(yaw))*(float)Math.Cos(Geometry.DegreeToRadian(pitch));
Y =  (float)Math.Sin(Geometry.DegreeToRadian(pitch));
Z =  (float)Math.Cos(Geometry.DegreeToRadian(yaw))*(float)Math.Cos(Geometry.DegreeToRadian(pitch));
shipPos.X += speed * X;
shipPos.Y += speed * Y;
shipPos.Z += speed * Z;
0
 
LVL 2

Author Comment

by:DaFou
ID: 11961690
Hehe somehow it works. TYVM.
0

Featured Post

Keep up with what's happening at Experts Exchange!

Sign up to receive Decoded, a new monthly digest with product updates, feature release info, continuing education opportunities, and more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Artificial Intelligence comes in many forms, and for game developers, Path-Finding is an important ability for making an NPC (Non-Playable Character) maneuver through terrain.  A* is a particularly easy way to approach it.  I’ll start with the algor…
Recently, in one of the tech-blogs I usually read, I saw a post about the best-selling video games through history. The first place in the list is for the classic, extremely addictive Tetris. Well, a long time ago, in a galaxy far far away, I was…
Despite its rising prevalence in the business world, "the cloud" is still misunderstood. Some companies still believe common misconceptions about lack of security in cloud solutions and many misuses of cloud storage options still occur every day. …
Look below the covers at a subform control , and the form that is inside it. Explore properties and see how easy it is to aggregate, get statistics, and synchronize results for your data. A Microsoft Access subform is used to show relevant calcul…
Suggested Courses

879 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question