Wpf 如何在长方体Bezier曲线上添加点?

Wpf 如何在长方体Bezier曲线上添加点?,wpf,bezier,Wpf,Bezier,在photoshop中,我们可以使用画笔工具创建bezier曲线,当我们编辑完成的曲线时,我们可以在曲线上添加点,以相同的方式混合。 现在我已经用wpf创建了一个bezier路径,如何在上面添加点,特殊的问题是我无法计算新点的控制点。 请帮帮我,谢谢。photoshop所做的不是“添加控制点”,因为这会提高曲线的阶数并改变曲率;相反,它将三次曲线拆分为两条三次曲线C1和C2,其中C1的端点和C2的起点是相同的坐标 如果WPF没有在API中内置曲线分割,那么您可能需要自己实现曲线分割。这很直截了当

在photoshop中,我们可以使用画笔工具创建bezier曲线,当我们编辑完成的曲线时,我们可以在曲线上添加点,以相同的方式混合。 现在我已经用wpf创建了一个bezier路径,如何在上面添加点,特殊的问题是我无法计算新点的控制点。
请帮帮我,谢谢。

photoshop所做的不是“添加控制点”,因为这会提高曲线的阶数并改变曲率;相反,它将三次曲线拆分为两条三次曲线C1和C2,其中C1的端点和C2的起点是相同的坐标

如果WPF没有在API中内置曲线分割,那么您可能需要自己实现曲线分割。这很直截了当;有关DIY的解释,请参见


唯一的挑战是找到您单击的坐标的“t”值,最简单的解决方案是以1/100或1/1000步从t=0:1生成曲线,并记录每个t值处的x/y坐标。这将为您提供一个查找表,以便在需要分割曲线时进行即时查找。

现在我得到了T,并将曲线分割为两条,但我无法计算两条新曲线的四个新控制点。如何获得四个新的控制点?拆分算法生成两个子曲线所需的所有点-有一个代码列表,显示如何聚合所有C1(左)和C2(右)曲线点。