设计指数仪表

对于下面这个仪表,相邻标签(刻度)之间不是等差的,但如果从指数角度看,则是等差的。

因为1、8、64、512、4096分别是2的0、3、6、9、12次方,指数之间的间隔都是3,所以是指数等差。

以上面的仪表为例,设计这样的指数仪表的要点为:

1、先将Gauge的Minimum和Maximum分别设置为1和4096。

2、isLogarithmic属性设置为True,logarithmicBase设置为2,需要注意的是,Minimum必须大于0,否则无法将isLogarithmic设置为True。

3、增加一个Labels,Interval设置为3。

4、增加一个Marks,填充颜色设置为红色,Interval属性设为3,现在仪表的看起来像:

5、再增加一个Marks,填充颜色设置为灰色,Interval属性设为3,并将intervalCoeff属性设置为10,现在仪表就成了:

 

关于intervalCoeff属性

在默认情况下,系统每隔一个Interval绘制一个刻度(或标签)。

如果设置了intervalCoeff,则每个刻度(标签)之间 会再分成intervalCoeff份,也就是会增加intervalCoeff-1个标签(刻度),新增刻度(标签)之间的间隔值是相等的(注意不是指数间隔相等)。

为方便理解,将上述仪表的的Maximum改为48,现在仪表看起来如下:

第一个常规标签是1,第二个常规标签是8,1和8之间间隔7,如果将intervalCoeff设置为7,结果会怎样呢?

试一下就知道了,将Labels和第二个Marks的intervalCoeff都设置为7,结果如下:

显然,第一个常规标签值为1,第二个常规标签值是8,将间隔分成7等份,所以每份间隔是1.

为什么从8(第二个常规标签)开始,间隔成了8呢,因为第三个常规标签值是64,所以:(64 - 8) / 7 = 8。

一个小技巧

如果你足够细心,你会觉得奇怪,为什么在48的位置显示了一个红色刻度,按道理第三个红色刻度位置应该是64啊,你说得没错,之所以在48的位置出现了红色刻度,是因为我将此刻度的ShowIrregularTo属性设置为True了,这样系统会强行在结束值位置绘制一个刻度(或标签),对应也有一个ShowIrregularFrom属性,如果将其设置为True,会强行在起始值位置绘制一个刻度(或标签)


本页地址:http://www.foxtable.com/webhelp/topics/3910.htm