C#绘制立体三维饼状图.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[翻译] Julijan Sribar著 HYPERLINK /csharp/julijanpiechart.asp 3D Pie Chart 一个用于绘制立体三维饼状图的C#类库 [简介] 本文的想法就是创建一个独立的能够用于绘制立体三维饼状图的类库。首先,它看起来非常简单,因为,在Graphics 类中已经有了一个叫DrawPie 的方法。这个方法接收开始角度和展开角度作为参数,因此,看上去不再有什么其它的问题了。不过它实现的是一个平面的圆饼图,我需要的是一个三维的透视图;如果你也正需要这样的一个控件,这篇文章将再适合不过了。 [代码使用] 本文中的PieChart 解决方案包括三个类:PieSlice, PieChart3D 和 PieChartControl (继承于System.Windows.Forms.Panel 控件)。PieSlice 类提供了所以绘制3-D饼状图的功能,你可以设置它的起始、展开角度,颜色,高度及阴影类型。 PieChart3D 类代表整个图,有几个构造函数值得注意,它们可以接收下面的值: 颜色值数组 切片displacement(位移)数组 切片的厚度 因为位移是通过切片的深度比率和椭圆半径表示的;最小值0意味着没有位移,最大值1代表这个形状占用了整个椭圆。 切片的厚度,也代表着一个比率(相对于椭圆垂直距离),最大允许的值是0.5。 当然,也可以通过公有的函数,来设置上面的值。注意:如果设置的颜色数量少于切片的数量,颜色会被重用。同样,如果displacement没有了,最后一个值也会被复用。 可设置的公有属性如下: * Texts, * Font, * ForeColor, * ShadowStyle, * EdgeColorType, * EdgeLineWidth, * InitialAngle, * FitToBoundingRectangle. 通过文章的演示程序,可以很容易明白各个属性是什么含义。 PieChart3D 类还可以用于打印,初始化对象,然后调用它的Draw 方法(提供一个对应的Graphics 对象)。 public void Draw(Graphics graphics) { ... } 如果需要在屏幕上显示,可以使用PieChartControl;它封装了图形到面板的功能。用户只需要把它放在Form上,然后设置需要的属性就OK了。例如: private System.Drawing.PieChart.PieChartControl panelDrawing = new System.Drawing.PieChart.PieChartControl(); panelDrawing.Values = new decimal[] { 10, 15, 5, 35}; int alpha = 80; panelDrawing.Colors = new Color[] { Color.FromArgb(alpha, Color.Red), Color.FromArgb(alpha, Color.Green), Color.FromArgb(alpha, Color.Yellow), Color.FromArgb(alpha, Color.Blue) }; panelDrawing.SliceRelativeDisplacements = new float[] { 0.1F, 0.2F, 0.2F, 0.2F }; panelDrawing.Texts = new string[] { red, green, blue, yellow }; panelDrawing.ToolTips = new string[] { Peter, Paul, Mary, Brian }; panelDrawing.Font = new Font(Arial, 10F); pa

文档评论(0)

zhuliyan1314 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档