WPF Canvas 贝塞尔曲线绘制 实现平滑视觉效果

将一系列坐标点转换为贝塞尔曲线路径数据。它接收多个点的坐标信息,通过算法计算控制点,生成一条平滑连接所有点的三次贝塞尔曲线。

核心算法 - PaintLine 方法

private void PaintLine(List<Point> points)
{
    StringBuilder data = new StringBuilder("M"); // 移动命令
    data.AppendFormat("{0},{1} C", points[0].X, points[0].Y); // 起始点
    
    for (int i = 1; i < points.Count; i++)
    {
        // 计算控制点
        Point pre = new Point((points[i-1].X + points[i].X) / 2, points[i-1].Y);
        Point next = new Point((points[i-1].X + points[i].X) / 2, points[i].Y);
        
        // 添加三次贝塞尔曲线命令
        data.AppendFormat(" {0},{1} {2},{3} {4},{5}", 
            pre.X, pre.Y, next.X, next.Y, points[i].X, points[i].Y);
    }
    
    PathData = data.ToString(); // 设置最终路径
}
posted @ 2025-09-19 14:49  笺上知微  阅读(36)  评论(0)    收藏  举报