绘制平滑曲线

本文介绍了两种绘制平滑曲线的方法:1. DrawCurve 函数,它对点与点之间的连线进行平滑处理;2. 移动平均值法,通过取连续K个点的平均值来生成平滑曲线,K越大,曲线越接近直线。并给出了具体的点数据和计算示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.方法一DrawCurve

   1:          private static void DrawCurve(System.Windows.Forms.PaintEventArgs e, List
  
    points)
  
   2:          {
   3:              e.Graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
   4:              e.Graphics.DrawCurve(System.Drawing.Pens.Black, points.ToArray());
   5:          }

该函数只对点与点连线的接口入做平滑处理,不能真正的实现平滑曲线。

如:

点数据:
X:         Y:
499.2    9.9929045
486.4    25.9922011
473.6    45.9806858
460.8    67.955146
448    91.9429905
435.2    103.8421659
422.4    123.7203983
409.6    147.7134439
396.8    169.681009
384    193.6553043
371.2    217.625696
358.4    239.6070579
345.6    261.5919315
332.8    231.5832664
320    299.5805698
307.2    315.5771085
294.4    329.5715381
281.6    343.5739487

绘制曲线:
image

2.移动平均值

设原始数数为: A1,A2,A3,A4,A5,A6,A7,A8,.....An  
  选前面K个数(这里设K=5)进行计算,计算后的值为  
  Y5   =   (A1   +   A2   +   A3   +   A4   +   A5)   /   5  
  Y6   =   (A2   +   A3   +   A4   +   A5   +   A6)   /   5;  
  ...  
  Yn   =   (An-4   +   An-3   +   An-2   +   An-1   +   An)   /   K

K越大,曲线越接近直线。  

K为2,结果为:

image

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值