Bezier曲线上的等距点

Cri*_*omo 9 graphics bezier curve interpolation

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

J. *_*son 9

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

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

我们的想法是预先计算"参数化"曲线,并通过该曲线评估曲线.


nlu*_*oni 3

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(2d 平面)。

  • 这是在给定参数的情况下查找弧长的方法,但查找等距点需要该函数的逆函数。从一个到另一个并不是一件小事。@Christian Romo:你是怎么做到的?我的意思是,你可以只使用二分搜索,但这会非常慢(无论如何,对于我正在尝试做的事情)。 (7认同)