在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;
}