给定贝塞尔曲线的起点和终点以及两个控制点,我想计算细分(在JavaScript中),以在角度公差范围内避免直线段与曲线近似(避免段之间的角度过大)。我主要想看看在尝试编写自己的算法之前是否已经有一种有效的开源算法。
这是我发现接近执行此操作的方法:
https://github.com/turf-junkyard/turf-bezier-尽管不是完全一样,但是我可以使用一些代码,因为我已经有了样条线。
https://github.com/seanchas116/bezier-subdivide-这似乎完全符合我的要求,尽管它看起来像递归算法,但对性能造成很大损失。
https://pomax.github.io/bezierjs/-getLUT()可能有用,但是我需要一种方法来确定多少步骤。
http://ciechanowski.me/blog/2014/02/18/drawing-bezier-curves/-几乎是我想要的,但这不在Javascript中。
http://antigrain.com/research/adaptive_bezier/-有用的理论。
最佳答案
该模块应执行所需的操作:https://github.com/mattdesl/adaptive-bezier-curve