C#实现绘制面形图表的方法详解
程序员文章站
2023-12-18 16:58:22
本例详细讲述了c#实现的面形图绘制例子,这是其中一个核心绘制文件的代码,代码中的里面的注释很多,也比较详细,相信对于初学者学习及理解c#图形绘制方面的技术要点、难点有所帮助...
本例详细讲述了c#实现的面形图绘制例子,这是其中一个核心绘制文件的代码,代码中的里面的注释很多,也比较详细,相信对于初学者学习及理解c#图形绘制方面的技术要点、难点有所帮助。
c#绘制面形图的主要功能代码如下:
using system; using system.collections.generic; using system.componentmodel; using system.data; using system.drawing; using system.linq; using system.text; using system.windows.forms; using system.io; namespace 绘制面形图 { public partial class form1 : form { public form1() { initializecomponent(); } graphics g;//创建graphics对象 private void button1_click(object sender, eventargs e) { bitmap bt = new bitmap(panel1.width, panel1.height);//实例化一个bitmap对象 int flag = (panel1.width-4 )/ 6;//x轴的增值 g = graphics.fromimage(bt);//实例化graphics对象 pen p = new pen(color.black, 1);//设置pen对象 g.drawline(p, new point(0, 0), new point(0, panel1.height-20));//绘制y轴 g.drawline(p, new point(0, panel1.height - 20), new point(panel1.width - 4, panel1.height - 20));//绘制x轴 //声明一个用于绘制颜色的数组 color[] cl = new color[] { color.red, color.blue, color.yellowgreen, color.yellow, color.royalblue, color.violet, color .tomato}; int[] points = { 20,70,80,60,40,100,10};//声明一个计算走势峰值的数组 point pt1 = new point(0, panel1.height - 20 - points[0]);//记录绘制四边形的第一个点 point pt2 = new point(0, panel1.height - 20);//记录绘制四边形的第二个点 for (int i = 0; i <= 6; i++)//通过for循环绘制月份和面形图 { pointf p1 = new pointf(flag * i, panel1.height - 20);//计算每个月份数字的坐标 //绘制显示月份的数字 g.drawstring(i.tostring(), new font("宋体", 9), new solidbrush(color.black), new pointf(p1.x - 2, p1.y)); //记录绘制四边形的第三个点 point pt3 = new point(flag * i, panel1.height - 20); //记录绘制四边形的第四个点 point pt4 = new point(flag * i, panel1.height - 20 - points[i]); point[] pt={pt1,pt2,pt3,pt4};//声明一个point数组 g.fillpolygon(new solidbrush(cl[i]), pt);//填充四边形的颜色 //当继续绘制下一个四边形时,前一个四边形的最后两个点作为下一个四边形的起始点 pt1 = pt4; pt2 = pt3; } panel1.backgroundimage = bt;//显示绘制的面形图 } private void form1_load(object sender, eventargs e) { } } }
面形图是平时很普及的一种图表风格,用来显示数据挺方便的。合理的加以应用相信会对程序数据展现的视觉效果有很大的提高!