Зачем использовать (360 * 16) вместо всего лишь 360 градусов? - PullRequest
4 голосов
/ 07 июня 2011

Я заметил это во время использования Qt, просматривая примеры кода.

Когда они пытаются установить диапазон для переменной, в которой хранится угол (в данном случае angle ), почему она должна быть умножена на 360 на 16 вместовсего 360?

код (из примера hellogl):

static void qNormalizeAngle(int &angle)
{
    while (angle < 0)
        angle += 360 * 16;
    while (angle > 360 * 16)
        angle -= 360 * 16;
}

еще один пример из примера с коллоидными мышами:

Mouse::Mouse()
    : angle(0), speed(0), mouseEyeDirection(0),
      color(qrand() % 256, qrand() % 256, qrand() % 256)
{
    setRotation(qrand() % (360 * 16));
}

Признавая, что у меня почти нулевой опыткак в Qt, так и в графическом программировании, также скажите, распространено ли это везде или только в Qt.

1 Ответ

5 голосов
/ 07 июня 2011

Скрыт в этой статье:

Значения умножены на 16, потому что QPainter выражает углы как шестнадцатые градуса.

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