Bezier曲线上的等距点 [英] Equidistant points across Bezier curves

查看:244
本文介绍了Bezier曲线上的等距点的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

目前,我试图让多个贝塞尔有等距点。我目前使用三次插值来找到点,但是因为贝塞尔曲线的工作方式,某些区域比其他区域更密集,并且由于距离可变,所以证明了纹理映射的总量。 有没有办法按距离而不是按百分比找到贝塞尔上的点?此外,是否有可能将其扩展为多条连接的曲线?

解决方案

P_0和P_3之间的距离形式),是的,但我认为你知道这一点,直截了当。



曲线上的距离只是弧长:

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



其中:

fig 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(二维平面)。

Currently, I'm attempting to make multiple beziers have equidistant points. I'm currently using cubic interpolation to find the points, but because the way beziers work some areas are more dense than others and proving gross for texture mapping because of the variable distance. Is there a way to find points on a bezier by distance rather than by percentage? Furthermore, is it possible to extend this to multiple connected curves?

解决方案

distance between P_0 and P_3 (in cubic form), yes, but I think you knew that, is straight forward.

Distance on a curve is just arc length:

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

where:

fig 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]

(see the rest)

Probably, you'd have t_0 = 0, t_1 = 1.0, and dz(t) = 0 (2d plane).

这篇关于Bezier曲线上的等距点的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆