【发布时间】:2017-12-08 00:38:42
【问题描述】:
我正在使用这个方程来计算沿二次曲线的一系列点:
// Returns a point on a quadratic bezier curve with Robert Penner's optimization of the standard equation
result.x = sx + t * (2 * (1 - t) * (cx - sx) + t * (ex - sx));
result.y = sy + t * (2 * (1 - t) * (cy - sy) + t * (ey - sy));
遗憾的是,这些点分布不均,如下面的虚线渲染所示。这些点在曲线的中间更密集,并且在边缘附近间隔得更远。如何计算沿二次贝塞尔曲线均匀分布的一组点?
请注意,我正在使用它来渲染虚线,因此 MATLAB 中的慢速解决方案或其他方法将不起作用。我需要一个适合渲染器的快速解决方案。这不是为了研究或一次性计算!
编辑:我不是在问如何完成上述操作。以上是我的渲染!我已经知道如何估计贝塞尔曲线的长度、计算点数等等。我需要的是一种更好的贝塞尔曲线点插值算法,因为我所计算的点沿曲线不均匀分布曲线!
【问题讨论】:
-
与此类似 (stackoverflow.com/questions/18244305/…) 但我想要一些更简单的东西并在 JS 中编写代码。
-
github.com/MadLittleMods/svg-curve-lib , gamedev.stackexchange.com/questions/5373/… ....当寻找这个问题的答案时,甚至可以沿着路径移动速度,或者类似的东西,这就是我通常找到答案的方式
标签: javascript geometry bezier curve