亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C# > 正文

c# 曲線圖生成代碼

2020-01-24 03:43:05
字體:
來源:轉載
供稿:網友
復制代碼 代碼如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

using System.Drawing;
using System.Drawing.Drawing2D;
using System.IO;
using System.Drawing.Imaging;
using System.Collections;

namespace Curve
{
public class CurveDrawing
{
string title, title2, ytitle, xtitle;
/// <summary>
/// X坐標的標題
/// </summary>
public string Xtitle
{
get { return xtitle; }
set { xtitle = value; }
}
/// <summary>
/// Y坐標的標題
/// </summary>
public string Ytitle
{
get { return ytitle; }
set { ytitle = value; }
}
/// <summary>
/// 副標題
/// </summary>
public string Title2
{
get { return title2; }
set { title2 = value; }
}
/// <summary>
/// 主標題
/// </summary>
public string Title
{
get { return title; }
set { title = value; }
}
double yMax, yMin;
List<ArrayList> itemlist;

public CurveDrawing(List<ArrayList> itemlist, string title, string title2 = "")
{
this.itemlist = itemlist;
this.title = title;
this.title2 = title2;

yMax = -100000000;
yMin = 100000000;
for (int i = 0; i < itemlist.Count; i++)
{
if (Convert.ToDouble(itemlist[i][1]) > yMax)
yMax = Convert.ToDouble(itemlist[i][1]);
if (Convert.ToDouble(itemlist[i][1]) < yMin)
yMin = Convert.ToDouble(itemlist[i][1]);
}
}
/// <summary>
/// 創建并輸出圖片
/// </summary>
/// <returns>生成的文件路徑</returns>
public string Draw()
{
#region 基礎定義
//取得記錄數量
int count = itemlist.Count;

//記算圖表寬度
int wd = 80 + 50 * (count - 1);
//設置最小寬度為640
if (wd < 640) wd = 640;
//生成Bitmap對像
Bitmap img = new Bitmap(wd, 400);
//定義黑色畫筆
Pen Bp = new Pen(Color.Black);
//加粗的黑色
Pen BBp = new Pen(Color.Black, 2);
//定義紅色畫筆
Pen Rp = new Pen(Color.Red);
//定義銀灰色畫筆
Pen Sp = new Pen(Color.Silver);
//定義大標題字體
Font Bfont = new Font("黑體", 12, FontStyle.Bold);
//定義一般字體
Font font = new Font("Arial", 8);
//定義大點的字體
Font Tfont = new Font("Arial", 9);
//定義黑色過渡型筆刷
LinearGradientBrush brush = new LinearGradientBrush(new Rectangle(0, 0, img.Width, img.Height), Color.Black, Color.Black, 1.2F, true);
//定義藍色過渡型筆刷
LinearGradientBrush Bluebrush = new LinearGradientBrush(new Rectangle(0, 0, img.Width, img.Height), Color.Blue, Color.Blue, 1.2F, true);
LinearGradientBrush Silverbrush = new LinearGradientBrush(new Rectangle(0, 0, img.Width, img.Height), Color.Silver, Color.Silver, 1.2F, true);
#endregion

//生成繪圖對像
try
{
using (Graphics g = Graphics.FromImage(img))
{
#region 繪制圖表
//繪制底色
g.DrawRectangle(new Pen(Color.White, 400), 0, 0, img.Width, img.Height);
//繪制大標題
g.DrawString(title, Bfont, brush, wd / 2 - title.Length * 10, 5);
//繪制小標題
g.DrawString(title2, Tfont, Silverbrush, wd / 2 - title.Length * 10 + 40, 25);
//繪制圖片邊框
g.DrawRectangle(Bp, 0, 0, img.Width - 1, img.Height - 1);

//繪制Y坐標線
for (int i = 0; i < (count < 12 ? 12 : count); i++)
g.DrawLine(Sp, 40 + 50 * i, 60, 40 + 50 * i, 360);
//繪制X軸坐標標簽
for (int i = 0; i < count; i++)
g.DrawString(itemlist[i][0].ToString(), font, brush, 30 + 50 * i, 370);
//繪制X坐標線
for (int i = 0; i < 11; i++)
{
g.DrawLine(Sp, 40, 60 + 30 * i, 40 + 50 * ((count < 12 ? 12 : count) - 1), 60 + 30 * i);
double s = yMax - (yMax + Math.Abs(yMin)) / 10 * i;//最大的Y坐標值
g.DrawString(Math.Floor(s).ToString(), font, brush, 10, 55 + 30 * i);
}


//繪制Y坐標軸
g.DrawLine(BBp, 40, 50, 40, 360);
//繪制X坐標軸
g.DrawLine(BBp, 40, 360, 40 + 50 * ((count < 12 ? 12 : count) - 1) + 10, 360);

#endregion

#region 繪制曲線
//定義曲線轉折點
Point[] p = new Point[count];
for (int i = 0; i < count; i++)
{
p[i].X = 40 + 50 * i;
p[i].Y = 360 - (int)(((Convert.ToDouble(itemlist[i][1]) + Math.Abs(yMin)) / ((yMax + Math.Abs(yMin)) / 10)) * 30);
}
//繪制發送曲線
g.DrawLines(Rp, p);

for (int i = 0; i < count; i++)
{
//繪制發送記錄點的數值
g.DrawString(itemlist[i][1].ToString(), font, Bluebrush, p[i].X + 5, p[i].Y - 10);
//繪制發送記錄點
g.DrawRectangle(Rp, p[i].X - 2, p[i].Y - 2, 4, 4);
}

#endregion

//繪制Y坐標標題
g.DrawString(ytitle, Tfont, brush, 10, 40);
//繪制X坐標標題
g.DrawString(xtitle, Tfont, brush, 30, 385);
//圖片質量
g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
//保存繪制的圖片
string basePath = HttpContext.Current.Server.MapPath("/Curve/"),
fileName = Guid.NewGuid() + ".jpg";

using (FileStream fs = new FileStream(basePath + fileName, FileMode.CreateNew))
{
if (!System.IO.Directory.Exists(basePath))
System.IO.Directory.CreateDirectory(basePath);
img.Save(fs, ImageFormat.Jpeg);
return "/Curve/" + fileName;
}
}

}
catch (Exception)
{
throw;
}

}
}
}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
精品一区二区亚洲| 一区国产精品视频| 一区二区三区天堂av| www日韩中文字幕在线看| 国产香蕉精品视频一区二区三区| 中文字幕亚洲欧美日韩高清| 亚洲91av视频| 日韩精品在线免费观看视频| 91亚洲精品在线观看| 国内精品模特av私拍在线观看| 精品久久久在线观看| 2024亚洲男人天堂| 亚洲大胆美女视频| 97人人模人人爽人人喊中文字| 超碰91人人草人人干| 欧美日韩性视频| 久热精品视频在线观看| 国内精品视频一区| 亚洲欧美制服综合另类| 国产精品视频成人| 欧美激情视频网址| 久久人人爽人人爽人人片av高请| 国产视频精品自拍| 国产成人91久久精品| 一区二区在线视频播放| 色偷偷综合社区| 日本乱人伦a精品| 日韩精品免费在线视频观看| 亚洲精品成人久久电影| 亚洲a∨日韩av高清在线观看| 亚洲成人免费网站| 欧美日韩成人在线播放| 亚洲国产小视频在线观看| 亚洲电影免费观看高清完整版在线观看| 午夜精品福利视频| 91中文在线观看| 中文字幕亚洲综合久久| 成人亚洲欧美一区二区三区| 亚洲日本aⅴ片在线观看香蕉| 欧美亚洲国产另类| 亚洲第一免费播放区| 91精品久久久久久久久中文字幕| 欧美精品久久久久| 欧美日韩在线视频一区二区| 中文字幕在线看视频国产欧美| 欧美一区二粉嫩精品国产一线天| 国产成+人+综合+亚洲欧洲| 91久久久久久久久| 欧美激情精品久久久久久免费印度| 美女扒开尿口让男人操亚洲视频网站| 欧美xxxx14xxxxx性爽| 欧美一区第一页| 亚洲精品自拍偷拍| 亚洲欧洲日产国码av系列天堂| 欧美午夜性色大片在线观看| 麻豆国产精品va在线观看不卡| 欧美日韩亚洲精品一区二区三区| 国内精品小视频| 丝袜美腿精品国产二区| 欧美激情aaaa| 欧美影院在线播放| 国产日本欧美一区二区三区在线| 国产精品主播视频| 九九九久久国产免费| 久久久久99精品久久久久| 精品久久国产精品| 理论片在线不卡免费观看| 国产欧美一区二区三区四区| 亚洲乱亚洲乱妇无码| 国产情人节一区| 亚洲91精品在线观看| 亚洲人高潮女人毛茸茸| 国产精品女人久久久久久| 欧美午夜丰满在线18影院| 亚洲视频在线观看| 亚洲综合av影视| 欧美激情在线一区| 亚洲自拍高清视频网站| 欧美在线视频一区二区| 国产成人高清激情视频在线观看| 国产精品欧美日韩一区二区| 国产香蕉97碰碰久久人人| 亚洲一区二区久久久久久| 在线播放日韩精品| 欧美中文在线视频| 亚洲午夜性刺激影院| 欧美性videos高清精品| 日韩欧美国产黄色| 欧美性videos高清精品| 欧美性猛交99久久久久99按摩| 亚洲精品一区二三区不卡| 欧美黑人性猛交| 91亚洲国产精品| 亚洲天堂男人天堂| 亚洲美女免费精品视频在线观看| 亚洲自拍高清视频网站| 欧美日韩国产综合视频在线观看中文| 亚洲日本中文字幕| 精品久久久久久中文字幕| 欧美激情aaaa| 国产狼人综合免费视频| 欧美精品videofree1080p| 国产精品久久国产精品99gif| 中国日韩欧美久久久久久久久| 成人免费观看a| 久久91精品国产| 综合网日日天干夜夜久久| 欧美成人精品在线视频| 欧美最猛黑人xxxx黑人猛叫黄| 日韩av电影手机在线| 亚洲va久久久噜噜噜久久天堂| 日av在线播放中文不卡| 亚洲欧洲高清在线| 久久久国产精品亚洲一区| 久久国产天堂福利天堂| 成人欧美一区二区三区黑人孕妇| 国外视频精品毛片| 亚洲aⅴ日韩av电影在线观看| 久久香蕉国产线看观看av| 国产伦精品一区二区三区精品视频| 91久久久久久久| 国产精品极品美女在线观看免费| 国产亚洲一区精品| 精品国产成人在线| 国产亚洲精品久久久久久牛牛| 日产日韩在线亚洲欧美| 国产日韩亚洲欧美| 日韩欧美在线视频观看| 日韩欧美国产免费播放| 亚洲第一男人天堂| 欧美性生交大片免费| 久久久这里只有精品视频| 国产精品爽爽爽| 51精品国产黑色丝袜高跟鞋| 精品久久久国产| 97人洗澡人人免费公开视频碰碰碰| 欧美激情一二三| 欧美黑人一级爽快片淫片高清| 粗暴蹂躏中文一区二区三区| 亚洲视频在线观看免费| 中文字幕日韩精品有码视频| 岛国av一区二区三区| 国产视频欧美视频| 尤物tv国产一区| 国内精品久久久久影院 日本资源| 亚洲专区中文字幕| 日韩理论片久久| 欧美乱妇40p| 欧洲一区二区视频| 成人在线国产精品| 国产精品精品视频一区二区三区| 九九视频这里只有精品| 中国日韩欧美久久久久久久久| 日韩中文字幕在线视频| 亚洲精品久久久久中文字幕二区| 亚洲第一中文字幕在线观看| 成人黄色av免费在线观看| 国产一区二区三区在线看| 亚洲毛茸茸少妇高潮呻吟| 久久视频在线观看免费| 精品国偷自产在线视频99| 亚洲性av网站| 久久精品久久精品亚洲人| 欧美黄色片免费观看|