vb.net 教程 5-12 绘图实例之统计图 3 饼图

前端之家收集整理的这篇文章主要介绍了vb.net 教程 5-12 绘图实例之统计图 3 饼图前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

继续上一期《绘图实例之统计图2》,继续讲解如何绘制饼图:

当按下“饼图”按钮时,调用三个函数,分别是绘制饼图、显示到窗口,由于不需要坐标轴,所以这里不再绘制坐标轴:

  1. Private Sub btnPie_Click(sender As Object,e As EventArgs) Handles btnPie.Click
  2. Call DrawPie()
  3. Call DrawToForm()
  4. End Sub

DrawToForm()在之前已经介绍,以下是DrawPie的代码

  1. '绘制饼图
  2. Private Sub DrawPie()
  3. '标注每个季度
  4. Dim seasonValue(3) As Integer
  5. seasonValue(0) = nudSeason1.Value
  6. seasonValue(1) = nudSeason2.Value
  7. seasonValue(2) = nudSeason3.Value
  8. seasonValue(3) = nudSeason4.Value
  9. Dim seasonName() As String = {"一季度","二季度","三季度","四季度"}
  10. '我们要获得4个季度总的盈利
  11. Dim seasonSum As Integer = 0
  12. For i As Integer = 0 To 3
  13. seasonSum += seasonValue(i)
  14. Next
  15. '根据总赢利情况,来获得每个季度在饼图中所占的份额(角度)
  16. '为了简化起见,这里直接取整数
  17. Dim seasonAngle(4) As Integer
  18. seasonAngle(0) = 0
  19. seasonAngle(1) = seasonValue(0) * 360 \ seasonSum
  20. seasonAngle(2) = seasonValue(1) * 360 \ seasonSum + seasonAngle(1)
  21. seasonAngle(3) = seasonValue(2) * 360 \ seasonSum + seasonAngle(2)
  22. seasonAngle(4) = 360
  23. '分别用4种颜色表示不同季度的盈利--http://blog.csdn.net/uruseibest
  24. Dim seasonColor() As Color = {Color.Red,Color.Blue,Color.Green,Color.GreenYellow}
  25. For i As Integer = 0 To 3
  26. g.FillPie(New SolidBrush(seasonColor(i)),New Rectangle(100,100,200,200),seasonAngle(i),seasonAngle(i + 1) - seasonAngle(i))
  27. '饼图中特别需要说明每个季度对应的颜色
  28. g.FillRectangle(New SolidBrush(seasonColor(i)),New Rectangle(360,i * 50 + 80,60,40))
  29. '标出每个季度
  30. g.DrawString(seasonName(i),New Font("宋体",12),New SolidBrush(Color.Black),New Point(450,i * 50 + 90))
  31. Next
  32.  
  33. End Sub


按下“饼图”按钮时,如下图所示:

需要强调的是FillPie()最后两个关于角度的参数:
第1个角度参数(startAngle):扇形起始角度,是构成扇形的第一条边从x轴方向按照顺时针旋转的角度。
第2个角度参数(sweepAngle):扇形第二条边从第一条边按照顺时针方向旋转的角度



由于.net平台下C#和vb.NET很相似,本文也可以为C#爱好者提供参考。

学习更多vb.net知识,请参看 vb.net 教程 目录

猜你在找的VB相关文章