-1

我有一个小问题。

我有间隔。250 表示 0,500 表示 2。如何通过将坐标从 250 更改为 250 来获得 0-2 之间的数字。

void MouseButton(int button, int state, int x, int y)
{
    // MIN(250) - 0
    // MAX(500) - 2
    if (button == GLUT_LEFT_BUTTON && state == GLUT_DOWN)
    {
        pos2[0] = ( (float)x * 2 ) / ((float)m_viewport[2] -1);
        printf("%f - %d\n", pos2[0], x);
    }
}
4

2 回答 2

0
float scalar = 2.0f
float lBound = 250.0f;
float rBound = 500.0f;

float t = ((float)x-lBound)/(rBound-lBound)

pos2[0] = std::max(std::min(0.0f, t), 1.0f)*scalar
于 2013-06-06T11:38:13.060 回答
0

你有没有试过这个:

pos2[0] = ( (float)(x * 2.0) ) / ( (float)(m_viewport[2] * 1.0 - 1) );
于 2013-06-06T11:01:50.060 回答