我目前正在开发一个模块来创建图表以显示数据。
我使用System.Windows.Forms.DataVisualization.Charting.Chart
。
我有两条带状线,即使我为StripWidth
参数赋予它们相同的值:
我们的MaxY
为6000,平均值为2300
,阈值为2500
// We can't use a fixed size because if the y axis is too high or too small it may look too big or too small
this.chart1.ChartAreas[0].Axes[1].StripLines[0].StripWidth = maxY / 100;
this.chart1.ChartAreas[0].Axes[1].StripLines[1].StripWidth = maxY / 100;
// add the striplines
this.chart1.ChartAreas[0].Axes[1].StripLines[0].Interval = 0;
this.chart1.ChartAreas[0].Axes[1].StripLines[1].Interval = 0;
this.chart1.ChartAreas[0].Axes[1].StripLines[0].IntervalOffset = average;
this.chart1.ChartAreas[0].Axes[1].StripLines[1].IntervalOffset = threshold;
它们通常会以不同的大小结束,但它很微妙,但我可以看到它而且我不明白它为什么会发生。
答案 0 :(得分:2)
这只是一个光学错觉:屏幕截图显示了两条宽度相同的3行像素!
较暗,绿色的看起来稍微紧一点但是当您计算像素时,您会看到它们是相同的:
为了避免这种影响,我建议给它们一个具有相同亮度的颜色!
另请注意,由于四舍五入,您可能始终会获得非完美的子像素抗锯齿效果。
最后(也是最重要的):在屏幕截图中,网格线增加了幻觉。再一次:为避免这种情况,请确保网格线和带状线具有更明确的亮度值!
在photoshop中检查:在屏幕截图中,您有第一个带有brightness=109
的带状线,网格线brightness=100
,基本相同,所以它们合并,宽度从3到4像素。但第二个带状线有一个brightness=50
。这导致感知的额外宽度为33%,这是显而易见的。
请注意,网格线颜色可以像带状线颜色一样轻松设置..