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