0
我目前使用的代碼來自http://www.codecolony.de/opengl.htm#camera,並且想要在場景中繞軌道添加一個函數(在物體周圍移動相機)。opengl在一個圓上旋轉位置
我認爲它就像一個給定中心上的圓上的旋轉。 它幾乎在工作:它在我選擇的點上旋轉,並且視圖處於正確的方向。問題是半徑不是恆定的,我總是越來越靠近中心。
這裏是代碼我寫的:你有任何想法,爲什麼我(相機)不要總是停留在離中心的距離相等
void CCamera::RotateView(GLfloat Angle, SF3dVector center) // in degree
{
// rotate the position over the center
Position.x = cos(Angle*PIdiv180) * (Position.x - center.x) - sin(Angle*PIdiv180) * (Position.z - center.z) + center.x;
Position.z = sin(Angle*PIdiv180) * (Position.x - center.x) + cos(Angle*PIdiv180) * (Position.z - center.z) + center.z;
// adjust the viewDir
ViewDir = center - Position;
//now compute the new RightVector (by cross product)
RightVector = CrossProduct(&ViewDir, &UpVector);
}
做什麼?