WPF中的波浪线画法

 

比如说做一个类似这样的曲线界面, 可以动态添加格子, 每个格子可以调整曲线的波峰波谷。

 

此时可以用到PolyBezierSegment 类 

即:不断的添加2个控制点和终止点。

 

伪代码如下:

var bezierSegment = new PolyBezierSegment();

            for (int i = 0; i < periodCount - 1; i = i + 1)

            {

                var item1 = CurveLine.Items[i] as OffsetData;

                var item2 = CurveLine.Items[i + 1] as OffsetData;

                if (item1 != null && item2 != null)

                {

                    bezierSegment.Points.Add( new Point (Math.Max(0, item1.RightControlPoint.X / 100 * width + sliderOffsetWidth), Math .Max(0, item1.RightControlPoint.Y / 100 * height - sliderOffsetHeight)));

                    bezierSegment.Points.Add( new Point (Math.Max(0, item2.LeftControlPoint.X / 100 * width + sliderOffsetWidth), Math .Max(0, item2.LeftControlPoint.Y / 100 * height - sliderOffsetHeight)));

                    bezierSegment.Points.Add( new Point (Math.Max(0, (i + 1) * width + sliderOffsetWidth), Math.Max(0, (100 - item2.Intensity) / 100.0 * height - sliderOffsetHeight)));

              

                    bezierSegment.IsStroked = true;

                    bezierSegment.IsSmoothJoin = true;

                }

            }

 

最后把Segment添加到PathFigure里, 然后把PathFigure添加到PathGeometry里。

 

 

 

备注:

曲线的颜色渐变可以通过指定Geometry的GradientStops即可。

 

 

 

相关文章:

  • 2021-10-16
  • 2021-04-30
  • 2021-06-21
  • 2022-01-18
  • 2022-12-23
  • 2022-12-23
  • 2021-04-23
  • 2021-05-12
猜你喜欢
  • 2021-11-15
  • 2022-12-23
  • 2021-11-18
  • 2022-12-23
  • 2022-12-23
  • 2021-09-05
  • 2021-07-07
相关资源
相似解决方案