Заворачивать номер? - PullRequest
       4

Заворачивать номер?

0 голосов
/ 11 сентября 2010

У меня есть этот поплавок, угол поворота.

Camera.roty += (float) diffx * 0.2;

где diff - изменение положения мыши.

В OpenGL оно будет перенесено, если оно превышает 360 или ниже 0, но как мне это сделать, если я хочу проверить, находится ли угол между 0 и 180?

Спасибо

Ответы [ 3 ]

2 голосов
/ 11 сентября 2010

Если я правильно понимаю ваш вопрос, вы в основном ищете что-то вроде этого:

float Wrap( const float Number, const float Max, const float Min ) {
 if( Number > 0.0f ) {
  return fmod( Number, Max ) + Min;
 }
 else {
  return Max - fmod( abs( Number ), Max ) + Min;
 }
}
1 голос
/ 11 сентября 2010

Чтобы иметь дело со значениями с плавающей точкой, вы можете сделать:

angle = angle - floor(angle / 360) * 360;

Это также должно корректно работать с отрицательными значениями (-1 будет преобразовано в 359).

0 голосов
/ 11 сентября 2010

Согласно комментарию @bta:

почему бы не использовать:

angle % 180

и сохранить это число как угол?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...