OpenGL本身并没有提供极坐标的视图变换函数,但是根据其他函数我们可以自己创建一个这样的函数。
distance定义轨道半径
GLdouble elevation,GLdouble azimuth)
azimuth定义视野在xy平面上旋转的角度
elevation定义视野在yz平面上旋转的角度
twist定义视镜体围绕视野的旋转角度
void polarVIew(GLdouble distance,GLdouble twist,
{
glTranslated(0.0,0.0,-distance);
glRotated(-twist,0.0,0.0,1.0);
glRotated(-elevation,1.0,0.0,0.0);
glRotated(azimuth,0.0,0.0,1.0);
}
这个函数就是 红宝书 中给出的极坐标视图变换函数