【问题标题】:magic numbers in qwtqwt 中的幻数
【发布时间】:2012-03-29 14:24:56
【问题描述】:

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
}

【问题讨论】:

    标签: c++ qt qwt


    【解决方案1】:

    解决方法:

    1. Doc of drawArc
    2. a1 和 a2 用于计算该函数的 startAngle 和 spanAngle 参数
    3. 这些参数的度量是 1/16 度(参见 #1)
    4. 你可以猜到这些数字会将原来的圆弧旋转一个象限(90 度)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-10
      • 2019-11-22
      • 2015-07-26
      相关资源
      最近更新 更多