我有一个 2D 点的列表
。迭代点以确定点列表是直线还是弯曲(以及弯曲程度)的有效方法是什么。我想避免简单地获得较小子集之间的斜率。我该如何去做呢?
感谢您的帮助
编辑:感谢您的回复。澄清一下,我不需要它在数字上准确,但我想确定用户是否使用鼠标创建了弯曲形状,如果是,则曲线有多尖锐。这些值并不是太重要,只要能够确定尖锐曲线和稍微柔和的曲线之间的差异即可。
最佳答案
如果您只是想知道是否所有点或多或少都符合 d
度的曲线,只需对数组内部的端点和 d-2
等距点。这将为您提供一个d
次数的多项式。
获得曲线后,只需迭代数组即可查看每个点距曲线有多远。如果它们超出阈值,则您的数据不符合您的 d
次多项式。
编辑:我应该提到,迭代 d 的值是一个有限的过程。一旦 d
达到您拥有的点数,由于拉格朗日插值的工作原理,您将获得完美的拟合。
关于c# - 从点获取曲线细节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5477492/