What's wrong with this? (rotation translation problem) !!! AHHHHH!!! GRRR!

Started by
2 comments, last by Anachronism 22 years, 6 months ago
If I want to rotate and translate my world, why does it matter which order i do them in?? I see absolutley no reason why this would matter. This is a very simple program so far, here is a description and the problem.... I have 1 large polygon that extends in every direction on the x/y axis that has a grass texture on it... Right in the middle of the screen above the green grass, i display a little black square polygon. Everything looks and works perfectly fine at this point... while using this for translation glTranslatef(screenPosX,screenPosY,-2.0f); BUT, i want a perspective view on the grass texture... So I add glRotatef(45,-1.0f,0.0f,0.0f); which at first appears to work. The grass land poly is at an 45 degree angle and all seems well. BUT when I just add this rotation, the small black polygon that was right above the grass in the middle of the screen dissapears! It''s just gone. I never change the coords of either polys, and if i use that rotation on everything, everything should still be placed where they should be correct? So why does my black poly dissapear? When I rotate BEFORE i translate, both polys show up. (the main full screen ground/grass poly, and the little black box on top) But when I do this first the controls are messed up because when you hit the up aarow key, instead of the camera moving across the land, it moves at an upward angle... when the rotate comes first though, it moves across how i want it... just the black poly is gone..... I really don''t undertsnad why the order matters so much. If I hold a block in my hand and move it towards my face and then rotate it 45 degrees, its gonna look the same to me if i rotated it 45 degrees first, and then moved it towards my face. Any ideas how to fix this? It should be simple enough. Thanks for any help I''m tired and rambling! Thanks....
Advertisement
Rotating is turning the whole coordinate system. If you imagine a local coordinate system attach to you would the following not give the same result:
1. turn to your left and move 5 steps ahead
2. move 5 steps ahead and turn to your left
quote:Original post by Obelix
Rotating is turning the whole coordinate system. If you imagine a local coordinate system attach to you would the following not give the same result:
1. turn to your left and move 5 steps ahead
2. move 5 steps ahead and turn to your left


OK well that seems very odd. I see what your saying. But if you turn to your left and take 5 steps, or take 5 steps and turn to your left, all objects around you havn''t moved. They are still spaced apart how they were before. So Why is my second poly dissapearing when I rotate 45 degrees?

Thanks...
That was a very good way of explaining that, Obelix. I wish I had someone tell me that when I was learning

if you''d just let me modify what you said. Consider now:

1. turn to your left and move 5 steps ahead and put a dot at arms length.

2. move 5 steps ahead and turn to your left and put a dot at arms length.

This is how GL works, it does things in the order you specify.

So, consider those two examples I gave. Basicly, think like the camera does not move, rather the insertion point of your objets.

turn left: glRotate
move 5 steps: glTranslate
draw a dot: glBegin... glEnd

I hope that answers it
good luck
- Andrew

Resist Broken Links - andrewrussellstudios.4nx2.comI don''t believe it! Just Great!
Another server has gone!

This topic is closed to new replies.

Advertisement