如何防止缩放低于定义(OpenGL)



我有一个简单的OpenGL对象,它已经定义了一定的glScalef大小。它需要glutMouseFunc来使它像我想象的那样工作。所以,这就是我想象的:

GLUT_LEFT_BUTTON对象上需要增大0.1,所以:glScalef(scalesize+0.1,scalesize+0.1,0.0.);polygon();

GLUT_RIGHT_BUTTON对象上需要缩小0.1,所以:glScalef(scalesize-0.1,scalesize-0.1,0.0);polygon();

这是我的多边形功能:

void polygon(void){
glBegin(GL_POLYGON);
glColor3f(1.0,0.0,0.0);
glVertex2f(-0.15, -0.15);
glColor3f(0.0,0.0,0.0);
glVertex2f(-0.15, 0.15);
glColor3f(0.0,0.0,1.0);
glVertex2f(0.15, 0.15);
glColor3f(0.0,1.0,0.0);
glVertex2f(0.15, -0.15);
glEnd();
glEnable (GL_LINE_STIPPLE);
glLineWidth(3.0);
glLineStipple (6, 0x1C47);
glBegin(GL_LINES);
glColor3f(0.0,0.0,0.0);
glVertex2f(-0.25, -0.25);
glVertex2f(-0.25, 0.25);
glVertex2f(0.25, 0.25);
glVertex2f(0.25, -0.25);
glVertex2f(-0.25, 0.25);
glVertex2f(0.25, 0.25);
glVertex2f(-0.25, -0.25);
glVertex2f(0.25, -0.25);
glEnd();
}
这是我的场景功能:
void scene(void){
glClear(GL_COLOR_BUFFER_BIT);
glPushMatrix();
glScalef(scalesize,scalesize,0.0);
polygon();
glPopMatrix();
glFlush();
}

float scalesize = 1.0;

现在我不知道如何防止缩放低于0.15,关于我的对象大小。我试过用if语句来检查scalesize是否大于1.0,但没有成功。有解决方案吗?

感谢

好了,感谢@radical7,我明白了。已经按照他说的做了,但真正的解决办法是让现场函数完成它的工作,我不需要在鼠标函数中调用glScalef。

再次感谢。

最新更新