煙火  

做统计数据,经常用到如下柱型图:

 

柱图的X轴宽度(W)是已知的,在不影响柱的美观度情况下,怎么确定柱的宽度(w1)和柱间距(p1)的具体数值或比例呢?

在X轴宽度(W)已确定,柱的个数(A)是个不定值(有可能是1个,也有可能是100个...),这就要求算出柱的宽度(w1)和柱间距(p1)。

在画布X轴宽度有限的情况下,要求至少为P1设一个最小值,保证无论出现在多少根柱子,这个最小值都能把这些柱子分开。

我们暂设p1(min)为0.5。

caseOne:通过公式 W = w1 * A + (A+1) * p1  得出柱宽(w1),代入程序得到如下图:

显然,间距太小(0.5)。我们可以利于刚才的公式 W = w1 * A + (A+1) * p1,这次我们把p1做为未知数,w1代入上文中求出的值,重新计算p1值,代入程序得到如下图:

好吧,基本成型了。

但好象还有点问题,这时我把柱的个数改成1个呢,看看效果吧:

短粗胖有没有,为什么这样子呢。我们在计算柱宽时,没考虑到柱子的最大宽度,这里只要稍做处理一下,问题就解决了。

goto caseOne:

  

  把计算得出的w1做个判断就Ok, w1 = w1 > 70 ? 70 : w1;再算间距p1,最终无论多少个柱子,完美了。

 

 

posted on 2013-09-22 16:38  煙火  阅读(255)  评论(0)    收藏  举报