Welcome

首页 / 软件开发 / C# / 用C#绘制曲线图(Curve图,增加自动适应和多曲线绘制)

用C#绘制曲线图(Curve图,增加自动适应和多曲线绘制)2011-07-31 博客园 KenBlove在N久之前,我发过一个绘制曲线的文章 先发个绘制曲线图的:用ASP.NET with C# 绘制曲线图 (Curve图) 里面介绍了简单的绘制曲线图的方法.近来重新翻阅了这篇文章.心情大好之下又重新修改了 一下绘制方法,增加自动适应数据的处理和可以根据传入的数据绘制多条曲线

照例先上图:

比以前Cool吧?呵呵,其实就是根据数据自动计算边距和字体等.

/// <summary>/// 自动根据参数调整图像大小/// </summary>public void Fit(){//计算字体距离intFontSpace = FontSize + 5;//计算图像边距float fltSpace = Math.Min(Width / 6, Height / 6);XSpace = fltSpace;YSpace = fltSpace;//计算X轴刻度宽度XSlice = (Width - 2 * XSpace) / (Keys.Length - 1);//计算Y轴刻度宽度和Y轴刻度开始值float fltMinValue = 0;float fltMaxValue = 0;for (int i = 0; i < Values.Length; i++){if (Values[i] < fltMinValue){fltMinValue = Values[i];}else if (Values[i] > fltMaxValue){fltMaxValue = Values[i];}}if (YSliceBegin > fltMinValue){YSliceBegin = fltMinValue;}int intYSliceCount = (int)(fltMaxValue / YSliceValue);if (fltMaxValue % YSliceValue != 0){intYSliceCount++;}YSlice = (Height - 2 * YSpace) / intYSliceCount;}