Hi,
To orbit around an object in y direction,
how should I modify my up vector.
[Edited by - tinu on March 26, 2007 1:28:53 AM]
You don't. If you use a look-at matrix, set the look-at vector to your object, and move your camera in a circle around the object.
You google for some basic matrix mathematics. Are you sure you want to rotate the camera around the object, and not rotate the object on the spot?
D3DXMatrixLookAtLH() will do the job then, and you can just have the camera position move in a circle as:
D3DXVECTOR3 vPos(sin(angle), 0.0f, cos(angle)); where angle is the angle you want to use, which will be incrementing each frame.
D3DXVECTOR3 vPos(sin(angle), 0.0f, cos(angle)); where angle is the angle you want to use, which will be incrementing each frame.
Given an angle and a radius, you can use some simple trig to determine the X and Y position.
SOHCAHTOA
X = cos(theta) * radius
Y = sin(theta) * radius
You'll need to modify the axes to rotate on the Y axis (for simplicity this is an example of rotating on the Z axis).
EDIT: Yeah, what Evil Steve said.
Camera + /| / | radius / | / | / | Y / | / _| / theta | | +---------------+ Object X
SOHCAHTOA
X = cos(theta) * radius
Y = sin(theta) * radius
You'll need to modify the axes to rotate on the Y axis (for simplicity this is an example of rotating on the Z axis).
EDIT: Yeah, what Evil Steve said.
Yes.
This is true in orbiting in x-direction
But to orbit in y direction what should i do?
z = Radius * cos( Angle );
y = Radius * sin( Angle );
Is this correct?
If I do this,At particular angles my object disappears.
To avoid this, should I modify my up vector also?
This is true in orbiting in x-direction
But to orbit in y direction what should i do?
z = Radius * cos( Angle );
y = Radius * sin( Angle );
Is this correct?
If I do this,At particular angles my object disappears.
To avoid this, should I modify my up vector also?
Quote:Original post by tinuTo orbit around the Y axis, you modify X and Z. You only change the up vector if the "up" direction has changed - which is if you rotate the camera around either X (Pitch) or Z (roll).
Yes.
This is true in orbiting in x-direction
But to orbit in y direction what should i do?
z = Radius * cos( Angle );
y = Radius * sin( Angle );
Is this correct?
If I do this,At particular angles my object disappears.
To avoid this, should I modify my up vector also?
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement