【发布时间】:2015-05-06 20:31:02
【问题描述】:
我在 QT 中重新创建了这个量规,但彩色条带部分出现了问题。我希望能够从仪表上的任何位置(例如从 20 到 50)给带上色。
数学很混乱,我应该使用drawarc函数吗?
量规圆直径是300,所以我知道半径是150:
这个仪表有 101 个可能的值,从 0 到 100,并且使用了 270 度
float totalRads = 2 * pi * 0.75; // total radians for 270 degrees
float valueRads = totalRads/101;
float startRads = (135 * 2 * pi) / 360.0; // start radian for "0" on gauge
条宽是我想要的彩色弧线的宽度:
float startAngle = atan2(startpoint.x(), startpoint.y()); // ex 20 on gauge
float EndAngle = atan2(endpoint.x(), endpoint.y()); // ex 50 on gauge
painter.drawArc(barwidth, barwidth, 2 * (150 - barWidth), 2 * (150 - barWidth),
-angle1 * 16, angle2 * 16);
这不像我预期的那样工作。
基本上它只是在完全意想不到的圆圈区域中画了一小段:
【问题讨论】: