WPF Canvas 绘制贝塞尔曲线,如何实现疑问?

摘要:将一系列坐标点转换为贝塞尔曲线路径数据。它接收多个点的坐标信息,通过算法计算控制点,生成一条平滑连接所有点的三次贝塞尔曲线。 核心算法 - PaintLine 方法 private void PaintLine(List&l
将一系列坐标点转换为贝塞尔曲线路径数据。它接收多个点的坐标信息,通过算法计算控制点,生成一条平滑连接所有点的三次贝塞尔曲线。 核心算法 - 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(); // 设置最终路径 }