2013-06-06 4 views
-1

У меня есть небольшая проблема.Координаты мыши OpenGL

У меня есть промежуток. 250 означает 0 и 500 означают 2. Как я могу получить число между 0-2 по изменяющимся координатам от 250 до 250.

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); 
    } 
} 
+0

Звучит, как вы» повторно после этого: http://stackoverflow.com/questions/929103/convert-a-number-range-to-another-range-maintaining-ratio – paulm

+0

просьба пояснить немного больше, это не понятно, что вы» повторно просить – blue

ответ

0

Вы пробовали это:

pos2[0] = ((float)(x * 2.0))/((float)(m_viewport[2] * 1.0 - 1)); 
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 
+0

Решено, спасибо. –

Смежные вопросы