c# 直接再form上画波形_在c#winform里面怎么画波形图

匿名用户

1级

2017-07-30 回答

百度一下C# chart或者zedgraph

使用GDI+绘图技术即可。

首先引用System.Drawing命名空间。

给你绘制弧线、曲线和路线的参考代码:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

Graphic 画纸 = Form1.CreateGraphics();

public void 绘制弧线(Pen 钢笔, int X1, int Y1, int 宽, int 高, int 起始角, int 结束角)

{ 画纸.DrawArc(钢笔, X1, Y1, 宽, 高, 起始角, 结束角); }

public void 绘制弧线(Pen 钢笔, Rectangle RECT, int 起始角, int 结束角)

{ 画纸.DrawArc(钢笔, RECT, 起始角, 结束角); }

public void 绘制曲线(Pen 钢笔, Point[ ] 点组, float 张力)

{ 画纸.DrawCurve(钢笔, 点组, 张力); }

public void 绘制曲线(Pen 钢笔, PointF[ ] 点组, int 偏移, int 段数)

{ 画纸.DrawCurve(钢笔, 点组, 偏移, 段数); }

public void 绘制曲线(Pen 钢笔, PointF[ ] 点组, int 偏移, int 段数, float 张力)

{ 画纸.DrawCurve(钢笔, 点组, 偏移, 段数, 张力); }

public void 绘制路线(Pen 钢笔, GraphicsPath 路线)

{ 画纸.DrawPath(钢笔, 路线); }

public void 填充路线(Brush 画笔, GraphicsPath 路线)

{ 画纸.FillPath(画笔, 路线); }

另外要想不闪烁,请使用双缓冲技术:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

namespace 引擎.绘图.GDI

{

///

/// 为绘图提供双缓冲。提供建立多层画纸的方法并返回用于绘制的画纸。

///

public class 画板

{

private BufferedGraphicsContext M画板;

private List M画纸;

public int 画纸数 { get; private set; }

private int M当前号 = 0;

public Graphics 当前画纸 ( ) { return M画纸[M当前号].Graphics; }

public Graphics 画纸 ( int 号 ) { return M画纸[号].Graphics; }

public Rectangle 显示矩形 { get; set; }

public int 高 { get { return 显示矩形.Height; } }

public int 宽 { get { return 显示矩形.Width; } }

///

/// 新建画板并关联到指定区域的画纸上

///

/// 关联的Graphic,通常为Form.CreateGraphics

/// 关联的矩形区域,作为画板的工作区

/// 画板内含的缓冲区个数,不建议大于4个,默认为2个

public 画板 (Graphics 关联画纸, Rectangle 关联矩形, int 层数 = 2 )

{

M画纸 = new List();

M画板 = BufferedGraphicsManager.Current;

显示矩形 = 关联矩形;

画纸数 = 层数;

for (int i=1; i<=画纸数 ;i++)

{

BufferedGraphics t画纸;

t画纸 = M画板.Allocate(关联画纸, 显示矩形);

M画纸.Add(t画纸);

}

M当前号 = 0;

}

public event Action 呈现事件;

public void 引发呈现事件 ( ) { if (呈现事件 != null) { 呈现事件(); } }

public void 呈现 ( )

{

M当前号++;

if (M当前号 > 画纸数 - 1) { M当前号 = 0;}

M画纸[M当前号].Render();

引发呈现事件();

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值