请教各位高手,.net WinForm中如何实现实心圆环图?如图。谢谢!

AKillGodKillBuddha 2014-07-08 11:29:47


请高手赐教!谢谢!!
...全文
1343 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
idiotwei2014 2014-07-11
  • 打赏
  • 举报
回复
根据不同的颜色先做几个圆形的图片,然后根据百分比和开始位置用代码创建一个圆形图片的一部分,怎么创建可以参考 http://www.neowin.net/forum/topic/571104-vbnet-polygon-from-image/ 最后再在中心画一个圆形 顺便把上面链接翻成C#: private Bitmap Extract(Bitmap bitmap, Point[] points) { System.Drawing.Drawing2D.GraphicsPath path = new System.Drawing.Drawing2D.GraphicsPath(); path.AddPolygon(points); System.Drawing.RectangleF rectangle = path.GetBounds(); System.Drawing.Drawing2D.Matrix matrix = new System.Drawing.Drawing2D.Matrix(1, 0, 0, 1, -rectangle.X, -rectangle.Y); path.Transform(matrix); Bitmap result = new Bitmap((int)rectangle.Width, (int)rectangle.Height); Graphics g = Graphics.FromImage(result); g.Clear(Color.Transparent); RectangleF rect = new RectangleF(0, 0, rectangle.Width, rectangle.Height); g.Clip = new Region(path); g.DrawImage(bitmap, rect, rectangle, GraphicsUnit.Pixel); path.Dispose(); g.Dispose(); return result; } 在左上角画45% Image image = new Bitmap(@"XXX.png"); Bitmap bitmap = Extract(this.image, new Point[]{new Point(0, 0), new Point(半径, 0), new Point(半径, 半径)}); e.Graphics.DrawImage(bitmap, 0, 0);
sunny906 2014-07-08
  • 打赏
  • 举报
回复
提供个思路给你,用Graphics绘制,DrawEllipse画圆,DrawLine画线,DrawString写文字,再用Brush填充
落叶1210 2014-07-08
  • 打赏
  • 举报
回复
自己画的话,不太好看,DX13.1应该有这个功能。就算没有,可以考虑换个样式,效果说不定更好看。
jimil 2014-07-08
  • 打赏
  • 举报
回复
这个,确实有点麻烦,我还没见过,可能真要自己画。至于第三方,我经常使用DEV,但DEV没有,可能版本太低的原因,6.x,7.x呵
threenewbee 2014-07-08
  • 打赏
  • 举报
回复
基本上稍微知名点的第三方Chart控件都能支持。

4,816

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 图表区
社区管理员
  • 图表区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧