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)
    {

    }
  }
}

面形图是平时很普及的一种图表风格,用来显示数据挺方便的。合理的加以应用相信会对程序数据展现的视觉效果有很大的提高!

(0)

相关推荐

  • C#利用GDI绘制常见图形和文字

    废话不多说,我们先来认识一下这个GDI+,看看它到底长什么样. GDI+:Graphics Device Interface Plus也就是图形设备接口,提供了各种丰富的图形图像处理功能;在C#.NET中,使用GDI+处理二维(2D)的图形和图像,使用DirectX处理三维(3D)的图形图像,图形图像处理用到的主要命名空间是System . Drawing:提供了对GDI+基本图形功能的访问,主要有Graphics类.Bitmap类.从Brush类继承的类.Font类.Icon类.Image类.

  • C#绘制椭圆的方法

    本文实例讲述了C#绘制椭圆的方法.分享给大家供大家参考.具体实现方法如下: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; namespace WindowsApplication2 { public partial

  • C#实现在图像中绘制文字图形的方法

    本文实例讲述了C#实现在图像中绘制文字图形的方法.分享给大家供大家参考.具体实现方法如下: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Drawing.Drawing2D; using S

  • C#实现绘制浮雕图片效果实例

    本文采用C#实例讲解了处理图片为浮雕效果的实现方法,这在PS中是一个常见的功能,也是C#中的一个简单的图像处理例子.程序先读取原图,然后依次访问每个像素的RGB值,获取相邻两个像素的R.G.B值,计算与左上角像素的RGB分量之差,将计算后的RGB值回写到位图,最后进行图片的浮雕处理. 主要代码如下: using System; using System.Drawing; using System.Collections; using System.ComponentModel; using Sy

  • C#绘制中国国旗的方法

    本文实例讲述了C#绘制中国国旗的方法.分享给大家供大家参考.具体如下: 程序运行截图: 中国国旗被定义在<GB:12982-2004>中,以下是从维基百科条目中华人民共和国国旗中截的一张图,标出了五颗星大致的位置. 建立一个空的C# Windows窗体应用程序,窗体取名FormMain,在窗体中放一个PictureBox,取名为picFlagOfChina,并将Dock属性设置为Fill.程序代码中用到了窗体事件Load和Resize,程序代码如下: using System; using S

  • C#绘制飞行棋地图小程序

    1. 初始化地图,在绘制时可先将地图进行初始化,用数组来存储关卡的位置,然后利用循环给地图中 关卡所在处赋予代表关卡的值. 关键代码如下 /// <summary> /// 初始化游戏地图 /// </summary> static void InitialMap() { for (int i=0;i<Map.Length;i++) { Map[i] =0; } //用于存储关卡位置 int[] luckyTurn = { 6, 23, 40, 55, 69, 83,98 }

  • C# 绘制统计图大全(柱状图, 折线图, 扇形图)

    统计图形种类繁多, 有柱状图, 折线图, 扇形图等等, 而统计图形的绘制方法也有很多, 有Flash制作的统计图形, 有水晶报表生成统计图形, 有专门制图软件制作, 也有编程语言自己制作的:这里我们用就C# 制作三款最经典的统计图: 柱状图, 折线图和扇形图:既然是统计, 当然需要数据, 这里演示的数据存于Sql Server2000中, 三款统计图形都是动态生成. 其中柱状图我会附上制作步骤, 其他两款统计图直接附源码. 说明: 需求不一样, 统计图形绘制后的显示效果也不一样, 比如这里柱状图

  • C#绘制曲线图的方法

    本文实例讲述了C#绘制曲线图的方法.分享给大家供大家参考.具体如下: 1. 曲线图效果: 2. C#代码: /// <summary> /// 自动根据参数调整图像大小 /// </summary> public void Fit() { //计算字体距离 intFontSpace = FontSize + 5; //计算图像边距 float fltSpace = Math.Min(Width / 6, Height / 6); XSpace = fltSpace; YSpace

  • C#实现绘制面形图表的方法详解

    本例详细讲述了C#实现的面形图绘制例子,这是其中一个核心绘制文件的代码,代码中的里面的注释很多,也比较详细,相信对于初学者学习及理解C#图形绘制方面的技术要点.难点有所帮助. C#绘制面形图的主要功能代码如下: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using S

  • 在vue项目中引入highcharts图表的方法(详解)

    npm进行highchars的导入,导入完成后就可以进行highchars的可视化组件开发了 npm install highcharts --save 1.components目录下新建一个chart.vue组件 <template> <div class="x-bar"> <div :id="id" :option="option"></div> </div> </templa

  • Python实现在Excel中绘制可视化大屏的方法详解

    目录 数据清洗 绘制图表 生成可视化大屏 大家新年好哇,今天小编来给大家分享如何在Excel文档当中来绘制可视化图表,并且制作一个可视化大屏,非常的容易,这里我们会用到openpyxl模块,那么首先第一步便是调用该模块来读取Excel文件,代码如下 # 读取Excel文档并且指定工作表的名称 file_name = 'Bike_Sales_Playground.xlsx' df = pd.read_excel(file_name,sheet_name='bike_buyers') 当然为了保险起

  • EasyX绘制透明背景图的方法详解

    目录 三元光栅操作 优化方案 三元光栅操作 根据在网上的搜索总结得到两种方案,最常见的绘制带有透明背景的图像的方案都是采用如下的源图像和掩码图像叠加来消去边缘部分: IMAGE img[2]; loadimage(&img[0], "sun1.png", 100, 100); // 掩码图像 loadimage(&img[1], "sun0.png", 100, 100); // 源图像 putimage(0, 0, &img[0], NOT

  • Python可视化绘制图表的教程详解

    目录 1.Matplotlib 程序包 2.绘图命令的基本架构及其属性设置 3.Seaborn 模块介绍 3.1 未加Seaborn 模块的效果 4.描述性统计图形概览 4.1制作数据 4.2 频数分析 python 有许多可视化工具,但本书只介绍Matplotlib.Matplotlib是一种2D的绘图库,它可以支持硬拷贝和跨系统的交互,它可以在python脚本,IPython的交互环境下.Web应用程序中使用.该项目是由John Hunter 于2002年启动,其目的是为python构建MA

  • Android绘制旋转动画方法详解

    目录 1.准备工作 2.加速减速原理 3.初始化 4.开始 5.加速 6.减速 7.停止 8.项目源码 Layout部分 MainActivity部分 1.准备工作 首先需要有一个用于旋转的图片 需要考虑如何开始.结束.加速.减速 2.加速减速原理 本次的动画采用RotateAnimation,初始化需要的参数如下 public RotateAnimation(float fromDegrees,float toDegrees,int pivotXType,float pivotXValue,i

  • C#绘制实时曲线图的方法详解

    在终端机器上的曲线显示本打算用控件,可控件折腾好长时间也没弄顺,还是自己写的好使,记录下来后面再改进. //绘图部分的定义 Int32 Draw_Top;//绘画Y起点 Int32 Draw_Left;//绘画X起点 Int32 Draw_EdgeWidth;//X边缘宽度 Int32 Draw_EdgeHeight;//Y边缘高度 Int32 Draw_RangeWidth;//绘画范围宽度 Int32 Draw_RangeHeight;//绘画范围高度 Double[] XTDYData =

  • Matlab绘制雨云图的方法详解

    目录 介绍 横向雨云图 纵向雨云图 介绍 写了俩代码模板,用来绘制横向云雨图与纵向云雨图,云雨图其实就是用把小提琴图拆开来的模板,想获取小提琴图绘制函数的可以看这里:基于Matlab绘制小提琴图的示例代码 后面的俩模板用的时候只需要换换数据,颜色及每一类名称即可,雨云图绘制效果如下: 横向雨云图 function rainCloudsTMPL1 % @author: slandarer % 在这里放入你的数据============================================

  • Matlab绘制酷炫坐标区域的方法详解

    目录 使用方式 其他炫酷的背景 注意事项 代码展示及mat文件获取 写了一个能让坐标区域变得很炫酷的修饰函数: 同时想到了一个很有意思的把函数存储进mat文件的方法,方法就不细讲了,大家自行点开.mat文件能够很轻松的理解原理(大概), 使用方式 首先说明一下函数咋用:假设编写了如下函数: t=0:0.35:3*pi; plot(t,sin(t),'Marker','d','LineWidth',2,'Color',[102,194,166]./255) hold on plot(t,cos(t

  • Python+NumPy绘制常见曲线的方法详解

    目录 一.利萨茹曲线 二.计算斐波那契数列 三.方波 四.锯齿波和三角波 在NumPy中,所有的标准三角函数如sin.cos.tan等均有对应的通用函数. 一.利萨茹曲线 (Lissajous curve)利萨茹曲线是一种很有趣的使用三角函数的方式(示波器上显示出利萨茹曲线).利萨茹曲线由以下参数方程定义: x = A sin(at + n/2) y = B sin(bt) 利萨茹曲线的参数包括 A . B . a 和 b .为简单起见,我们令 A 和 B 均为1,设置的参数为 a=9 , b=

随机推荐