магические числа в qwt

Qwt, кажется, использует много магических чисел. Может ли кто-нибудь объяснить, что 90 и 16 из следующего кода

void QwtRoundScaleDraw::drawBackbone( QPainter *painter ) const
{
    const double a1 = qMin( scaleMap().p1(), scaleMap().p2() ) - 90 * 16;
    const double a2 = qMax( scaleMap().p1(), scaleMap().p2() ) - 90 * 16;

    const double radius = d_data->radius;
    const double x = d_data->center.x() - radius;
    const double y = d_data->center.y() - radius;

    painter->drawArc( x, y, 2 * radius, 2 * radius,
        -a2, a2 - a1 + 1 );          // counterclockwise
}

person ramtheconqueror    schedule 29.03.2012    source источник


Ответы (1)


Шаги, чтобы разобраться:

  1. Документация по drawArc
  2. a1 и a2 используются для вычисления параметров startAngle и spanAngle этой функции.
  3. мера этих параметров составляет 1/16 градуса (см. № 1)
  4. вы можете догадаться, что эти числа будут вращать исходную дугу с квадрантом (90 градусов)
person MrTJ    schedule 29.03.2012