实现OpenGL的透视方式:
http://www.csdn.net/dev/Visual%20C++/source%20code/OpenGL/start.shtml.htm
在对话框中使用OpenGL:
http://www.csdn.net/dev/Visual%20C++/source%20code/OpenGL/texture_mapping.shtml.htm
对OpenGL图形进行缩放和panning操作:
http://www.csdn.net/dev/Visual%20C++/source%20code/OpenGL/zooming.shtml.htm

解决方案 »

  1.   

    请问在OpenGL下如何转换以下函数组:
      glRotatef(x_angle,1,0,0);
      glRotatef(y_angle,0,1,0);
      glRotatef(z_angle,0,0,1);
    到 glRotatef(angle,x,y,z)函数. 请给出具体公式. thank a lot!!!!    
      

  2.   

    我的一段把圆柱旋转到(x1,y1,z1)和(x2,y2,z2)之间的程序,和你这个问题很接近,应该有帮助。 // Draw the cylinder.
    qCylinder = gluNewQuadric();
        glLoadIdentity();
        glTranslated(x1,y1,z1);
    GLdouble u1,v1,w1,u2,v2,w2,u,v,w,angle;
    u1=0; 
    v1=0; 
    w1=1; 
    u2=x2-x1; 
    v2=y2-y1; 
    w2=z2-z1; 
    u=v1*w2-w1*v2; 
    v=w1*u2-u1*w2; 
    w=u1*v2-v1*u2; 
    angle = asin(sqrt(u2*u2+v2*v2)/sqrt(u2*u2+v2*v2+w2*w2))*180/3.14159;
    glRotated(angle, u, v, w);
    GLdouble cr = 0.02 ;
    GLdouble h = sqrt(u2*u2+v2*v2+w2*w2) ;
    GLint seg  = 16 ; 
    gluCylinder(qCylinder, cr, cr, h, seg, seg);