首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

用 C# 繪製自適應多曲線圖表

     編輯:關於C語言

在早期的專案中,我曾分享過使用 ASP.NET 配合 C# 繪製基本曲線圖的方法。近期重構該功能,新增了資料自動適應與多曲線同步繪製特性,大幅提升圖表的實用性與視覺效果。

核心改進

新版本會根據輸入資料自動計算邊距、字體大小、X/Y 軸刻度間距,並支援一次繪製多條曲線。以下展示執行結果:

多曲線自適應圖表示例

關鍵程式碼:自動適應邏輯

/// <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 軸範圍
    float fltMinValue = 0, 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;

    // 計算 Y 軸刻度數量與高度
    int intYSliceCount = (int)(fltMaxValue / YSliceValue);
    if (fltMaxValue % YSliceValue != 0) intYSliceCount++;
    YSlice = (Height - 2 * YSpace) / intYSliceCount;
}

此方法動態調整繪圖區域,確保任意範圍的數據都能完整呈現,無需手動設定座標參數。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved