如何防止缩放低于定义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.15);
        glColor3f(0.0,1.0);
        glVertex2f(0.15,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);
        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,我明白了。已经做了他所说的一切,但真正的解决方案是让 scene 函数完成它的工作,我不必在我的鼠标函数中调用 glScalef。

再次感谢。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...