C#實(shí)現(xiàn)繪制面形圖表的方法詳解
本例詳細(xì)講述了C#實(shí)現(xiàn)的面形圖繪制例子,這是其中一個核心繪制文件的代碼,代碼中的里面的注釋很多,也比較詳細(xì),相信對于初學(xué)者學(xué)習(xí)及理解C#圖形繪制方面的技術(shù)要點(diǎn)、難點(diǎn)有所幫助。
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;//創(chuàng)建Graphics對象
private void button1_Click(object sender, EventArgs e)
{
Bitmap bt = new Bitmap(panel1.Width, panel1.Height);//實(shí)例化一個Bitmap對象
int flag = (panel1.Width-4 )/ 6;//X軸的增值
g = Graphics.FromImage(bt);//實(shí)例化Graphics對象
Pen p = new Pen(Color.Black, 1);//設(shè)置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軸
//聲明一個用于繪制顏色的數(shù)組
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};//聲明一個計(jì)算走勢峰值的數(shù)組
Point pt1 = new Point(0, panel1.Height - 20 - points[0]);//記錄繪制四邊形的第一個點(diǎn)
Point pt2 = new Point(0, panel1.Height - 20);//記錄繪制四邊形的第二個點(diǎn)
for (int i = 0; i <= 6; i++)//通過for循環(huán)繪制月份和面形圖
{
PointF p1 = new PointF(flag * i, panel1.Height - 20);//計(jì)算每個月份數(shù)字的坐標(biāo)
//繪制顯示月份的數(shù)字
g.DrawString(i.ToString(), new Font("宋體", 9), new SolidBrush(Color.Black), new PointF(p1.X - 2, p1.Y));
//記錄繪制四邊形的第三個點(diǎn)
Point pt3 = new Point(flag * i, panel1.Height - 20);
//記錄繪制四邊形的第四個點(diǎn)
Point pt4 = new Point(flag * i, panel1.Height - 20 - points[i]);
Point[] pt={pt1,pt2,pt3,pt4};//聲明一個Point數(shù)組
g.FillPolygon(new SolidBrush(cl[i]), pt);//填充四邊形的顏色
//當(dāng)繼續(xù)繪制下一個四邊形時(shí),前一個四邊形的最后兩個點(diǎn)作為下一個四邊形的起始點(diǎn)
pt1 = pt4;
pt2 = pt3;
}
panel1.BackgroundImage = bt;//顯示繪制的面形圖
}
private void Form1_Load(object sender, EventArgs e)
{
}
}
}
面形圖是平時(shí)很普及的一種圖表風(fēng)格,用來顯示數(shù)據(jù)挺方便的。合理的加以應(yīng)用相信會對程序數(shù)據(jù)展現(xiàn)的視覺效果有很大的提高!
- C#中使用DevExpress中的ChartControl實(shí)現(xiàn)極坐標(biāo)圖的案例詳解
- DevExpress之ChartControl創(chuàng)建Drill-Down樣式的Title實(shí)例
- DevExpress之ChartControl實(shí)現(xiàn)時(shí)間軸實(shí)例
- DevExpress之ChartControl的SeriesTemplate實(shí)例
- DevExpress之ChartControl實(shí)現(xiàn)柱狀圖演示實(shí)例
- DevExpress之ChartControl實(shí)現(xiàn)餅狀圖百分比演示實(shí)例
- DevExpress之ChartControl用法實(shí)例總結(jié)
- WinForm使用DecExpress控件中的ChartControl插件繪制圖表
相關(guān)文章
C#實(shí)現(xiàn)Windows服務(wù)安裝卸載開啟停止
本文主要介紹了C#實(shí)現(xiàn)Windows服務(wù)安裝卸載開啟停止,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07
C# WinForm制作一個批量轉(zhuǎn)化文件格式的小工具
在生活中有時(shí)候會遇到批量轉(zhuǎn)換格式的需求,一個個點(diǎn)太麻煩了,一個能夠?qū)崿F(xiàn)批量文件格式轉(zhuǎn)換的工具非常有用,所以本文小編使用C# WinForm制作一個批量轉(zhuǎn)化文件格式的小工具,文中有具體實(shí)現(xiàn)代碼,需要的朋友可以參考下2023-11-11
C#使用Socket發(fā)送和接收TCP數(shù)據(jù)實(shí)例
這篇文章主要介紹了C#使用Socket發(fā)送和接收TCP數(shù)據(jù)的實(shí)現(xiàn)方法,以實(shí)例的形式詳細(xì)講述了C#實(shí)現(xiàn)socket通信的完整實(shí)現(xiàn)過程,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2014-10-10
C#使用Twain協(xié)議實(shí)現(xiàn)掃描儀連續(xù)掃描功能
這篇文章主要介紹了C#使用Twain協(xié)議實(shí)現(xiàn)掃描儀連續(xù)掃描,只需一行代碼,就可實(shí)現(xiàn)一次掃描多張,且不需要更改掃描儀的任何設(shè)置,需要的朋友可以參考下2022-01-01
C#遞歸方法實(shí)現(xiàn)無限級分類顯示效果實(shí)例
這篇文章主要介紹了C#遞歸方法實(shí)現(xiàn)無限級分類顯示效果,結(jié)合完整實(shí)例形式分析了C#遞歸算法與數(shù)據(jù)元素遍歷的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2016-06-06
C#編程實(shí)現(xiàn)統(tǒng)計(jì)文件夾內(nèi)文件和隱藏文件的方法示例
這篇文章主要介紹了C#編程實(shí)現(xiàn)統(tǒng)計(jì)文件夾內(nèi)文件和隱藏文件的方法,結(jié)合具體實(shí)例形式分析了C#針對文件與目錄的遍歷及屬性操作相關(guān)技巧,需要的朋友可以參考下2017-07-07

