首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有界曲率插值

有界曲率插值
EN

Stack Overflow用户
提问于 2022-01-05 13:07:05
回答 3查看 298关注 0票数 5

在下面的代码中,我使用scipy.interpolate.splprep例程使用B样条插值一组点.很明显,左边这条曲线在第6点附近是很“锋利”的:它的曲率太大了(见右图)。

我希望曲率被限制在<10。我可以通过增加平滑因子s来改进这一点,例如将其设置为s=8

满足我的曲率界限。但是,我目前必须通过反复试验找到这个平滑因子s (而且,较高的s并不一定意味着较低的曲率)。无论如何,我能解释一下曲率吗?我知道这在理论上是可能的,基于这个问题

代码(Python小提琴)

EN

回答 3

Stack Overflow用户

发布于 2022-01-14 08:35:10

这只是一个建议,但是有一件事是可以替代故意平滑的,那就是引入额外的(假的)数据点,通过这些数据点曲线应该通过。

插入这些点的条件是检测在任意两个连续(实)点之间是否存在急剧的方向反转。这可以通过比较包含任意两个连续节点的向量方向之间的角度来实现,如果这个角度低于一定的阈值,则该点被认为是一个“反转”点。

一旦识别出这样的反转点,您就可以引入P(假)点,其中整数P取决于您希望这些转换是多么的平滑。例如,如果你不介意U形,那么你可以在每个反转点中引入一个假点,在与反转方向正交的方向上稍微偏移。

票数 1
EN

Stack Overflow用户

发布于 2022-01-14 09:38:49

一种已知的方法是使用杜宾斯路径插值点。它在满足最小曲率的同时,提供了任意两条曲线之间的最短曲线。本文描述了一个叫做马尔可夫-杜宾斯插值的实现。

但是,我不推荐这种方法,因为曲线不是光滑的(由于固定的曲率水平,加速度存在不连续性)。

票数 1
EN

Stack Overflow用户

发布于 2022-01-06 06:45:55

现在不行,至少现在不行。可悲的是。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70593382

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档