Jump to content
  • Advertisement
Sign in to follow this  

Camera Roation

This topic is 5038 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Ok I'm having some trouble w\ my camera rotation. I know there are camera classes out there but I want to learn this. This cam will have no lateral roation or movement, just side to side rotation and forward and back translation. So this is what I got: For Input: if (keys[VK_UP]) // Is The Up Arrow Being Pressed? { ztranslate += sin((float)yangle) * .005; xtranslate += cos((float)yangle) * .005; } if (keys[VK_DOWN]) // Is The Down Arrow Being Pressed? { ztranslate -= sin((float)yangle) * .005; xtranslate -= cos((float)yangle) * .005; } if (keys[VK_RIGHT]) // Is The Right Arrow Being Pressed? { yangle += .01; } if (keys[VK_Left]) // Is The Left Arrow Being Pressed? { yangle -= .01; } This is what I have for the actual movement and rotation: // Move Camera glRotatef(yangle, 0.0f, 1.0f, 0.0f); glTranslatef(xtranslate, 0.0f, ztranslate); As you can see I leave the Y alone. Now the rotation is working great. The translation is the problem. The idea I have is I know the angle (yangle) of a right triangle. So I can use sin to get the Opp side which should b my Z cord and I can use Cos to get my Adj side which should b my X cord. then I multiplay by .005 so that I control the "speed" or distance of the translation. This just give me the point I want to move to right? So then I just plug that point into my glTranslate function and it just go, but it doesnt... Here take a look at the unpreditable responses: http://www.talentopoly.com/adam/UPLOADS/cpp/WinMain.exe it's not a virus, i'm not competent enough to program a virus, so dont worry.

Share this post


Link to post
Share on other sites
Advertisement
no ideas any one? Is my math wrong, is the application of the answer to the translation wrong? Plz I'm been working on this for hours and hours!

Share this post


Link to post
Share on other sites
Well... the world. Everything, those come before i draw anything.
Take a look @ that sample prog I linked to, it almost works. It's just the direction of the translation is screwed up some times.

Share this post


Link to post
Share on other sites
Okay, maybe the camera idea is a little vague. As far as I know there is no actual camera in OpenGL. It's a concept, nothing more.

Basically, according to your code, you aren't switching your matrix mode to projection. Therefore just calling rotate and translate out in the middle of nowhere will simply rotate and translate the last thing in the matrix stack, which could be anything at all, and not even the projection matrix.

Then again your code sample looks cut-n-pasted, so I can't tell if you're doing that or not.

What have you got against gluLookAt, anyway? ;)

Share this post


Link to post
Share on other sites
Hey there,

Try this

if (keys[VK_UP]) // Is The Up Arrow Being Pressed?
{
ztranslate -= sin((float)yangle) * .005;
xtranslate += cos((float)yangle) * .005;
}
if (keys[VK_DOWN]) // Is The Down Arrow Being Pressed?
{
ztranslate += sin((float)yangle) * .005;
xtranslate -= cos((float)yangle) * .005;
}


The do your


glRotatef(yangle, 0.0f, 1.0f, 0.0f);
glTranslatef(xtranslate, 0.0f, ztranslate);


If you walk the wrong way, then switch all of your += and -= around.

If you check out the law of sines, you'll see what you're doing wrong. Let me know if this helps!

PS: This is a great math tutorial to get this stuff sorted out.
Clicky

Share this post


Link to post
Share on other sites
hehe i dont have anything against gluLookAt what I can't figure out is how to set the direction to look in correctly every time.

Ur right I didnt post the full code here, i coppied in snippets, but it's all my code if thats what u mean.

I'm not rotating the Projection Matrix. I'm rotating the modle view matrix as far as I know... I guess thats a problem huh...

Share this post


Link to post
Share on other sites
Quote:
Original post by Wavesonics
hehe i dont have anything against gluLookAt what I can't figure out is how to set the direction to look in correctly every time.

Ur right I didnt post the full code here, i coppied in snippets, but it's all my code if thats what u mean.

I'm not rotating the Projection Matrix. I'm rotating the modle view matrix as far as I know... I guess thats a problem huh...


No, you're going to want to use the ModelView matrix.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

Participate in the game development conversation and more when you create an account on GameDev.net!

Sign me up!