贝塞尔曲线上的等距点

时间:2020-03-05 18:39:30  来源:igfitidea点击:

目前,我正在尝试使多个贝塞尔曲线具有等距的点。我目前正在使用三次插值法来找到点,但是由于贝塞尔曲线的工作方式某些区域比其他区域更密集,并且由于距离可变,证明了纹理贴图的总体效果。有没有一种方法可以通过距离而不是百分比来在贝塞尔曲线上找到点?此外,是否可以将其扩展到多个连接的曲线?

解决方案

回答

是的,但是我想我们知道P_0和P_3之间的距离(三次方)是直截了当的。

曲线上的距离就是弧长:

图1 http://www.codecogs.com/eq.latex?%5Cint_%7Bt_0%7D%5E%7Bt_1%7D%20%7B%20|P'(t)|%20dt

在哪里:

图2 http://www.codecogs.com/eq.latex?P%27(t)%20=%20[%7Bx%27,y%27,z%27%7D]%20=%20[% 7B%5Cfrac%7Bdx(t)%7D%7Bdt%7D,%5Cfrac%7Bdy(t)%7D%7Bdt%7D,%5Cfrac%7Bdz(t)%7D%7Bdt%7D%7D]

(请参阅其余部分)

可能我们将拥有t_0 = 0,t_1 = 1.0和dz(t)= 0(二维平面)。

回答

这称为"弧长"参数化。几年前,我写了一篇关于此的论文:

http://www.saccade.com/writing/graphics/RE-PARAM.PDF

这个想法是预先计算一条"参数化"曲线,并据此评估曲线。