openGL中的一个小问题
就是在glMatrixMode函数 和glutInitWindowSize函数编写的程序时
当改变窗口大小时,图案的大小可以改变,有缩放,但程序必须保证图案的形状保持不变
比如说在下面程序里
#include <GL/glut.h>
#include <math.h>
#include <stdlib.h>
#include <stdio.h>
#define P 3.14
void SetCameraPosition(void)
{
/* Set the viewing transformation */
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(-1.05,1.05,-1.05,1.05);
glMatrixMode(GL_MODELVIEW);
}
GLint m,n;
void lineSegment(void)
{ GLfloat j=0, k=0,i=0;
glClear (GL_COLOR_BUFFER_BIT);
glColor3f(1.0,0.0,0.0);
for(i=0;i<m;i++) { j=i;
glBegin(GL_LINE_STRIP);
for(k=0;k<=m/n;k++){j=j+n;
glVertex2f(cos(2*P*j/m),sin(2*P*j/m));
}
glEnd();
glFlush();
}
}
void main (int argc,char** argv)
{ m=atoi(argv[1]);n=atoi(argv[2]);
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutInitWindowPosition(50,100);
glutInitWindowSize(400,300);
glutCreateWindow("An Example OpenGL Program");
SetCameraPosition();
glutDisplayFunc (lineSegment);
glutMainLoop();
}