科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道应用软件在ASP.NET页面中实现数据饼图

在ASP.NET页面中实现数据饼图

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

本文要介绍的在ASP.NET页面中实现数据饼图采用的基本也是这种方法

作者:阿虎 来源:yesky 2007年10月24日

关键字:

  • 评论
  • 分享微博
  • 分享邮件
三.ASP.NET页面中实现数据Pie图的关键步骤及其实现方法:

  在本文中所要解决的问题和《在ASP.NET页面中实现数据棒图》中完全一样。第一步实现数据库连接和从数据库中读取数据,由于其解决方法和前文中完全一致,这里也就不具体介绍了,读者可参阅前文。下面就要解决根据从数据库中读取的数据绘制Pie图的方法。

  (1).绘制数据Pie图的实现方法:

  图01所示的Pie图看似是由一个圆形按照从数据库中得到数据值的大小分割而成的,其实在具体实现时并非如此,图01所示的Pie图其实由许多根据从数据库中数值大小,绘制相应的扇型,并由这些扇型组合而成的

  (2).简介ASP.NET页面中绘制扇型要使用到的类及其方法:

  在本文和前文中,在ASP.NET页面中实现绘图功能主要使用的是Graphics类,Graphics类被封装在命名空间"System.Drawing"中。Graphics类中定义了很多方法和属性,这些方法和属性都与绘图有关,Graphics类中的常用成员具体可参阅表01和表02,表01是Graphics类中的常用方法及其说明,表02是Graphics类中常用属性及其说明:

方法 说明
Clear 清除整个绘图面并以指定背景色填充。
Dispose 释放由此Graphics对象使用的所有资源。
DrawArc 绘制一段弧线,它表示由一对坐标、宽度和高度指定的椭圆部分。
DrawEllipse 绘制一个由边框定义的椭圆。
DrawIcon 在指定坐标处绘制由指定的Icon对象表示的图像。
DrawIconUnstretched 绘制指定的Icon对象表示的图像,而不缩放该图像。
DrawImage 在指定位置并且按原始大小绘制指定的Image对象。
DrawImageUnscaled 在坐标对所指定的位置并且按其原始大小绘制指定的Image对象。
DrawLine 绘制一条连接由坐标对指定的两个点的线条。
DrawLines 绘制一系列连接一组Point结构的线段。
DrawPie 绘制一个扇形,该扇形由一个坐标对、宽度和高度以及两条射线所指定的椭圆定义。
DrawPolygon 绘制由一组Point结构定义的多边形。
DrawRectangle 绘制由坐标对、宽度和高度指定的矩形。
DrawRectangles 绘制一系列由Rectangle结构指定的矩形。
DrawString 在指定位置并且用指定的Brush和Font对象绘制指定的文本字符串。
FillClosedCurve 填充由Point结构数组定义的闭合基数样条曲线的内部。
FillEllipse 填充边框所定义的椭圆的内部,该边框由一对坐标、一个宽度和一个高度指定。
FillPie 填充由一对坐标、一个宽度、一个高度以及两条射线指定的椭圆所定义的扇形区的内部。
FillPolygon
填充Point结构指定的点数组所定义的多边形的内部。
FillRectangle 填充由一对坐标、一个宽度和一个高度指定的矩形的内部。
FillRectangles 填充由Rectangle结构指定的一系列矩形的内部。
FillRegion 填充Region 对象的内部。
Flush 强制执行所有挂起的图形操作并立即返回而不等待操作完成。
FromHdc 从设备上下文的指定句柄创建新的Graphics对象。
FromHwnd 从窗口的指定句柄创建新的Graphics对象。
FromImage 从指定的Image对象创建新Graphics对象。
GetHdc 获取与此Graphics对象关联的设备上下文的句柄。
ReleaseHdc 释放通过以前对此Graphics对象GetHdc方法的调用获得的设备上下文句柄。
ResetClip 将此Graphics对象的剪辑区域重置为无限区域。
ResetTransform 将此Graphics对象的全局变换矩阵重置为单位矩阵。

           表01:Graphics类中的常用方法及其说明

  在本文中使用最多,也是最重要的方法就是:FillPie和DrawPie方法。这二个方法的具体使用方法,在下文中又详细介绍。

属性 说明
Clip 获取或设置Region对象,该对象限定此Graphics对象的绘图区域。
ClipBounds 获取RectangleF结构,该结构限定此Graphics对象的剪辑区域。
DpiX 获取此Graphics对象的水平分辨率。
DpiY 获取此Graphics对象的垂直分辨率。
PageScale 获取或设置此Graphics对象的全局单位和页单位之间的比例。
PageUnit 获取或设置用于此Graphics对象中的页坐标的度量单位。
PixelOffsetMode 获取或设置一个值,该值指定在呈现此Graphics对象的过程中像素如何偏移。
RenderingOrigin 为抵色处理和阴影画笔获取或设置此Graphics对象的呈现原点。
SmoothingMode 获取或设置此Graphics对象的呈现质量。
TextRenderingHint 获取或设置与此Graphics对象关联的文本的呈现模式。
Transform 获取或设置此Graphics对象的全局变换。
VisibleClipBounds 获取或设置此Graphics对象的可见剪辑区域的边框。
             表02:Graphics类中的常用属性及其说明

  (3).利用FillPie和DrawPie方法绘制扇型的具体方法:

  DrawPie方法功能是绘制一个扇型,下面是 DrawPie方法的一种调用语法,此语法也是本文中主要的调用方式,具体如下:

  public void DrawPie ( Pen , float , float , float , float , float , float ) ;

  此种DrawPie调用方法是由七个参数组成,这七个参数的具体说明如下:

  第一个参数:定义绘制扇型的画笔类型;

  第二和第三个参数:定义扇型的坐标;

  第四和第五个参数:定义组成扇型的二个射线的长度;

  第六和第七个参数:定义扇型的开始角度和扇型旋转的角度大小。其中把X坐标的正方向定为0度角,计算扇型的开始角度的按照顺时针方向旋转,最先到达的扇型的那条射线和0度角之间的夹角。

  下列代码就是在ASP.NET页面中绘制一个扇型:

Bitmap bm = new Bitmap ( 600 , 300 ) ;
//创建一个长度为600,宽带为300的Bitmap实例
Graphics g ;
g = Graphics.FromImage ( bm ) ;
//由此Bitmap实例创建Graphic实例
g . Clear ( Color . Snow ) ;
g.DrawPie ( Pens.Red , 50 , 50 , 150 , 150 , 0 , 30 ) ;

  图02就是上述代码运行后绘制的扇型:


图02:在ASP.NET页面中绘制扇型

  在上述代码后,再添加下列代码:

g.DrawPie ( Pens.Black , 50 , 50 , 150 , 150 , 30 , 60 ) ;

  此时在运行,可得到图03所示界面:


图03:在ASP.NET页面中绘制二个扇型

  此时再利用FillPie方法以不通的色彩填充上述绘制的扇型,就可以得到图01所示的Pie图中的一部分了。FillPie方法在本文中的调用语法如下:

public void FillPie ( Brush , float , float , float , float , float , float ) ;

  FillPie方法参数和DrawPie方法FillPie方法基本相同,只是第一个参数有所区别,FillPie方法第一个参数定义的是要填充扇型的刷子类型,而并非是画笔类型。

  在上述修改后的代码后面再添加下列代码:

g.FillPie ( new SolidBrush ( Color .Blue ) , 50 , 50 , 150 , 150 , 0 , 30 ) ;
g.FillPie ( new SolidBrush ( Color .Yellow ) , 50 , 50 , 150 , 150 , 30 , 60 ) ;

  此时再运行就可得到图04所示的界面:


图04:在ASP.NET页面中为扇型颜色后的界面

  至此我想大家应该了解到,图01所示的Pie图其实就是根据从数据库中得到的数值大小计算各自在一个圆形中的360度所占度数的多少,分别绘制扇型,然后再以不同的颜色填充,最后加以组合而形成的。了解了这种思想,并掌握了FillPie和DrawPie方法,下面就来具体介绍在ASP.NET页面中实现数据Pie图的步骤。
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章