c#问题。如何利用c#绘制随机曲线?

c#问题。如何利用c#绘制随机曲线?,第1张

C#绘制曲线需要以下步骤:

- 确定曲线方芦枯程,绘制曲线必然有方程,否则无法自动绘制.方程即是X和Y关咐哗谈系.即便是随机曲线也必须要有方程.int Function(int x)//根据x返回y值,绘图时遍历x区间,通过Fucntion得到y,之后根据x和y的点集合进行绘图.

- 在UI放置一个可以用于绘制的控件,有两种方式:

-- 直接绘制,比如可以Graphic g = pictureBox.CreateGraphics()之后在Graphic g画,具体绘图方法参考GDI+,简单说就是g下面的方法.

Graphic g = pictureBox.CreateGraphics()

g.DrawLine(new Pen(new SolidBrush(Color.Red)), 1, 1, 3, 3).

-- 绘制在Bitmap上之后将图加载到显示控件中,

Bitmap b = new Bitmap(100,200)//参数是长宽

Graphics g = Graphics.FromImage(b)

g.DrawLine(new Pen(new SolidBrush(Color.Red)), 1, 1, 3, 3).

第一种方式适用于一张图从无到有的绘制衡碰,第二种方式适用于全图不停刷新的情况.

下面通过一个与条形图结合的实例对最小二乘法(least square)与B样竖知条插值(B spline)进行分析:

1. y1=[15.81292 16.43826 5.69620310.91314 8.493151 5.37974710.24499 7.945205 8.86075912.02673 13.15068 19.62025...

2. 5.790646 15.89041 37.341777.349666 9.041096 6.01265810.69042 10.13699 3.79746816.03563 10.68493 5.696203...

3. 11.13586 8.219178 7.594937]

4. y11=[15.81292,10.91314,10.24499,12.02673,5.790646,7.349666,10.69042,16.03563,11.13586]

5. y12=[16.43826,8.493151,7.945205,13.15068,15.89041,9.041096,10.13699,10.68493,8.219178]

6. y13=[5.696203,5.379747,8.860759,19.62025,37.34177,6.012658,3.797468,5.696203,7.594937]

7. x=[1 2 3 4 5 6 7 8 9]

8.

9. %% bar graph

10.b=bar([y11',y12',y13'])% same with b=bar(y1)

11.grid on

12.set(gca, 'xticklabel', {'0-20','20-40','40-60','60-80','80-100','100-120','120-140','140-160','160-180'})

13.legend('156C','164C','172C')

14.xlabel('Angle:degree')

15.ylabel('Percentage:%')

16.title('Angle')

17.hold on

18.

19.%% least square method

20.result1=polyfit(x,y11,3)

21.plot(x,polyval(result1,[1:9]))

22.

23.%% B spline

24.values1 = spcrv([[x(1) x x(end)][y11(1) y11 y11(end)]],3)

25.plot(values1(1,:),values1(2,:),'b','LineWidth',2)

上例中,y1=y11', y12', y13' 对于bar()函数,使用二者都可以,但是对于least square与B spline,只能余则消将y值分盯顷开;另外,bar()函数对于x轴的值有默认值,所以对于bar(),不写x=[...]仍可以执行,但对于least square与B spline,需明确指出x值。对于bar()函数的其他参数即可。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12407235.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存