0%

csharp 利用饼型图分析公司男女比率

  • 来源:明日科技
  • 利用饼型图分析公司男女比率

    实例说明

    开发人力资源管理系统时,利用饼图分析公司男女比例是最佳的选择。本实例对某公司的男女比例使用饼型图进行分析,实例运行效果如图1所示。

    图1 利用饼型图分析公司男女比率

    关键技术

    本实例实现时主要用到了Graphics类的FillEllipse方法和FillPie方法,下面分别对它们进行详细讲解。
    (1)FillEllipse方法 该方法用于填充Rectangle结构指定的边框所定义的椭圆的内部,其语法格式如下:
    public void FillEllipse(Brush brush,Rectangle rect)
    参数说明 brush:确定填充特性的 Brush。 rect:Rectangle结构,它表示定义椭圆的边框。
    (2)FillPie方法 该方法用于填充椭圆所定义的扇形区的内部,该椭圆由Rectangle结构和两条射线指定,其语法格式如下:
    public void FillPie(Brush brush,Rectangle rect,float startAngle,float sweepAngle) FillPie方法语法中的参数及说明如表1所示。
    表1 FillPie方法语法中的参数及说明

    参数 说明
    brush 确定填充特性的Brush
    rect Rectangle结构,它表示定义该扇形区所属的椭圆的边框
    startAngle 从x轴沿顺时针方向旋转到扇形区第一个边所测得的角度(以度为单位)
    sweepAngle 从startAngle参数沿顺时针方向旋转到扇形区第二个边所测得的角度(以度为单位)

    设计过程

    (1)打开Visual Studio 2008开发环境,新建一个Windows窗体应用程序,命名为CAnalyseSex。
    (2)更改默认窗体Form1的Name属性为Frm_Main,在该窗体中添加两个Panel控件,分别用来显示绘制的饼型图和说明信息。
    (3)程序主要代码如下:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    private void ShowPic(string SexCode,float f)
    {
    Graphics g = this.panel1.CreateGraphics(); //通过panel1控件创建一个Graphics对象
    Pen p=new Pen(new SolidBrush(Color.Blue)); //创建画笔
    Point p1=new Point(0,0); //创建Point对象
    Size s=new Size(this.panel1.Width,this.panel1.Height);//创建Size对象
    Rectangle trct = new Rectangle(p1, s); //创建Rectangle对象
    g.FillEllipse(new SolidBrush(Color.Red), trct); //绘制椭圆
    g.FillPie(new SolidBrush(Color.Blue), trct, 180, f*360);//绘制扇形
    Graphics ginfo = this.panel2.CreateGraphics(); //通过panel2控件创建一个Graphics对象
    Font font=new Font("宋体",10,FontStyle.Regular);//设置字体
    //绘制性别
    ginfo.DrawString(SexCode +" "+f.ToString().Substring(0,4), font, new SolidBrush(Color.Blue), 0, 5);
    ginfo.DrawString("女" + " " + (1.0 - Convert.ToDouble(f.ToString().Substring(0, 4))).ToString().Substring(0, 4), font, new SolidBrush(Color.Red), 0, 25); //绘制比例
    }

    秘笈心法

    心法领悟012:使用Color结构获取颜色。
    Color结构表示一种ARGB颜色(alpha、红色、绿色、蓝色),现在已经命名的颜色都可以使用Color结构的属性来表示,例如,蓝色可以用Color.Blue来表示。

    觉得文章有用?请我喝杯咖啡~