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(); // 设置最终路径
}

浙公网安备 33010602011771号