计算二次贝塞尔的段的长度(Calculate the length of a segment of

2019-06-26 20:33发布

我用这个算法来计算二次贝塞尔长度: http://www.malczak.linuxpl.com/blog/quadratic-bezier-curve-length/

然而,我希望做的是从0计算贝塞尔的长度为t,其中0 <T <1

有什么办法来修改上述链接用来获取贝塞尔曲线的第一段长度的公式?

只是为了澄清,我不是在寻找(0)和Q(t),这些点之间那张弧的长度Q之间的距离,但。

(我不希望使用自适应细分到aproximate长度)

Answer 1:

因为我相信类似的形式解决方案将存在该变量t的情况下-我延长给出的链接的解决方案。

从链接中的公式开始:

我们可以为写

其中b = B/(2A)c = C/A

然后转化u = t + b我们得到

其中k = c - b^2

现在我们可以使用积分身份从链接获取:

所以,总的来说,所需的步骤是:

  1. 计算A,B,C与在原始方程。
  2. 计算b = B/(2A)c = C/A
  3. 计算u = t + bk = c -b^2
  4. 堵塞这些值代入上面的方程。


Answer 2:

虽然可能有一个封闭的形式表达,这是我会怎么做:

使用去应用Casteljau算法的贝塞尔分成0到t部分,并使用算法从链接来计算它的长度。



Answer 3:

你只需要评估没有1 0 0之间,但与之间和T的积分。 您可以使用您所选择的符号工具箱这样做,如果你不进入数学。 例如:

http://integrals.wolfram.com/index.jsp?expr=Sqrt\[a*x*x%2Bb*x%2Bc\]&random=false

评估对于x = t与X = 0的结果和相减。



文章来源: Calculate the length of a segment of a quadratic bezier
标签: math bezier