用ASP.NET with C# 绘制曲线图(Curve图)转
2011-12-24 11:09
477 查看
先发个绘制曲线图的:用ASP.NET with C# 绘制曲线图(原文地址)
画曲线图,网上有很多代码可以参考,也有不少开放的组件可以用,但是我是本着自己能写就自己写的原则,毕竟自己写的代码所有过程清楚明白,放心!错了也得了一个教训,值得!网上的例子多数画曲线图是用DrawLine()函数将各个点一点一点连接起来,所以大部分时候也叫折线图。但是.NET中还有一个DrawCurve()函数,它可以直接画出一条曲线或者折线,还可以设置张力(Tension)值,比用DrawLine()方便德多也好用得多!
好了,不废话,先看看最终生成的效果图:
曲线图可以缩放,随意定义X轴和Y轴代表的大小,还可以定义Y轴的起始值,张力值等等。全部元素颜色都可以自定义。
//初始化和填充图像区域,画出边框,初始标题
private void InitializeGraph()
private void SetAxisText(ref Graphics objGraphics)
private void SetXAxis(ref Graphics objGraphics)
private void SetYAxis(ref Graphics objGraphics)
//初始化标题
private void CreateTitle(ref Graphics objGraphics)
private void DrawContent(ref Graphics objGraphics)
{
if(Keys.Length == Values.Length)
{
Pen CurvePen = new Pen(CurveColor,1);
PointF[] CurvePointF = new PointF[Keys.Length];
float keys = 0;
float values = 0;
float Offset1 = (Height-100) + YSliceBegin;
float Offset2 = (YSlice/50)*(50/YSliceValue);
for(int i=0;i<Keys.Length;i++)
{
keys = XSlice*i+100;
values = Offset1 - Values[i]*Offset2;
CurvePointF[i] = new PointF(keys,values);
}
objGraphics.DrawCurve(CurvePen,CurvePointF,Tension);
}
else
{
objGraphics.DrawString("Error!The length of Keys and Values must be same!",new Font("宋体",16),new SolidBrush(TextColor),new Point(150,Height/2));
}
}
由于X轴Y轴都有缩放,所以要设置两个编译量Offset1和Offset2,使曲线产生相应变化。
至此,曲线图完成,当然,画折线也是可以的,下图就是更改属性后生成的折线,数值和第一幅图片一样。
![](http://images.cnblogs.com/cnblogs_com/kenblove/Curve6.jpg)
源码:点击下载Curve.rar
相关文章推荐
- 先发个绘制曲线图的:用ASP.NET with C# 绘制曲线图(Curve图)
- 用ASP.NET with C# 绘制曲线图(Curve图)
- 用ASP.NET with C# 绘制曲线图(Curve图)
- 用ASP.NET with C# 绘制曲线图(Curve图)
- 用ASP.NET with C#绘制柱状图(Bar图)
- 用ASP.NET with C#绘制饼图(Pie图)
- 用 C# 绘制曲线图(Curve图,增加自动适应和多曲线绘制)
- 在ASP.Net With C# 中使用 DataGrid 控件分页展示数据
- Essential ASP.NET with Examples in C#
- 用ASP.net/C#画条形图,饼状图,曲线图的源代码
- Exception handling with custom error pages in ASP.NET using C#.
- Developing ASP.NET Custom Control With C# Builder
- ASP.net with C#学习个人谈
- Beginning ASP.NET 1.1 with Visual C# .NET 2003【封面】
- Asp.Net实例:C# 绘制统计图(柱状图, 折线图, 扇形图)
- C#.NET常见问题(FAQ)-如何使用2D绘图控件ZedGraph绘制坐标轴和坐标曲线
- Developing ASP.NET Custom Control With C# Builder
- ASP.Net绘制柱状图和曲线图示例
- asp.net实现C#绘制太极图的方法
- Developing ASP.NET Custom Control With C# Builder