我目前正在为我们的软件开发样条曲线绘制工具,我们希望能够向样条曲线添加新的控制点。我们正在使用GDI + GraphicsPath从一组控制点绘制样条曲线。找出样条路径上是否有一个点很简单,但是找出以什么顺序添加新点以使现有样条通过它又是另一回事。
我们不知道曲线本身是如何计算的,目前还只有一组现有的控制点,新点以及该点是否在曲线路径上。
我可以想到的唯一可能的解决方案是反复测试该点是否在由曲线的前2、3、4 ..个点组成的曲线上,并根据观察到的结果推断出该点在哪些现有点之间。这似乎是解决问题的蛮力方法,所以我想知道是否有人知道更好的方法?
谢谢
供参考,这是我们所做的:
Gdi + GraphicsPath具有将路径展平为一系列形成直线段的点的功能,这似乎可以保证包含原始控制点。
因此,我们遍历一组展平的线段,对它们进行新点测试,并跟踪我们所处的“控制段”。当发生碰撞时,我们找到了目标段,并可以添加新的控制点在定义该细分的2之间。
这是一个蛮力搜索,但是我没有找到其他任何不需要知道样条曲线如何拟合到点的解决方案,即使对于复杂的样条曲线,它似乎也可以平稳运行。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句