0

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
}
4

1 に答える 1

5

それを理解するための手順:

  1. drawArcのドキュメント
  2. a1およびa2は、その関数のstartAngleおよびspanAngleパラメーターを計算するために使用されます
  3. これらのパラメータの測定値は1/16度です(#1を参照)
  4. これらの数値は、象限(90度)で元の円弧を回転させると推測できます。
于 2012-03-29T14:39:46.593 に答える