查找 NURBS 曲线中曲率超过预定义值的部分

问题描述 投票:0回答:2

我正在尝试找到 NURBS 曲线的尖角。对于这个问题,我定义了极限曲率。我试图找到曲线上曲率高于该值的部分。一种选择是在曲线上进行插值并计算所有值的曲率,但这可能需要时间,并且可能会错过一些尖点。关于如何有效地找到这些部分有什么想法吗?

math graphics discrete-mathematics nurbs bspline
2个回答
2
投票

通过分析计算曲率的导数,我猜你会发现一个分子处带有多项式的(糟糕的)表达式。一个好的多项式求解器将允许您找到根,从而找到极值,将曲线分割成具有单调曲率的部分,并从那里通过 regula falsi 或类似的方法找到

k=c
的精确解。

一种更简单的方法是展平曲线(转换为平滑折线)并估计所有连续点三元组上的局部曲率(使用它们的外接圆)。高曲率部分也可能通过展平时点密度的异常来检测。

展平相对于均匀采样的好处是它会自动调整点密度。

另一个想法是采用圆弧逼近曲线的方法(这可以与二阶展平操作进行比较)。您会发现一些关于该主题的论文(不要与曲线的圆近似混淆),但通常这些方法很复杂。

也许还可以为给定区间内的 NURBS 曲率下界设计一个解析公式,并使用它来实现二分法。


0
投票

这是一个非常古老的问题,但是:NURBS 曲线中的尖角仅是结向量中多重性的结果,尤其是具有与曲线阶数相关的多重性。请参阅此答案:https://computergraphics.stackexchange.com/questions/358/nurbs-knot-multiplicity

© www.soinside.com 2019 - 2024. All rights reserved.