程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 用C#繪制曲線圖(Curve圖,增加自動適應和多曲線繪制)(1)

用C#繪制曲線圖(Curve圖,增加自動適應和多曲線繪制)(1)

編輯:關於C語言

在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;
        }
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved