我有一组3D点(我从执行实体细分的库中恢复),这些点属于曲线(即,实体的边缘)。这意味着曲线肯定会经过这些点中的每一个。
但是,点集是无序的,因此我需要对其进行排序,以便能够正确绘制此曲线。
有没有针对此类问题的已知方法?
一些其他信息:
- 曲线通常是参数化的(样条曲线/贝塞尔曲线,圆切片..)。
- 这些点作为浮点坐标给出。
- 这些点非常密集地打包(但是它们可以像我想要的那样密集)。为了让您有个想法,对于一条曲线,它在x中占19个单位,在x中占10个单位,在z中占5个单位,我引用了曲线段中的一系列点:(20.7622,25.8676,0)(20.6573,25.856, 0)(20.5529,25.8444,0)(20.4489,25.8329,0)(20.3454,25.8213,0)
即使我们知道顺序,也可以找到无数个符合点的曲线。即使我们添加了其他约束,由于其切线方向可以是任意的,因此开口端也存在问题。这里
—
joojaa
@joojaa是的,您是对的。但是,由于点的打包非常密集,所以我不希望它是精确的。如果确实要有正确的顺序,我打算将点的序列连接为多段线。
—
andrea.al
在需要对点进行排序的代码中,您是否还知道曲线的参数形式?(如果没有,我将删除我的第一个答案,因为它需要您知道参数形式。)
—
Martin Ender 2016年
@MartinBüttner是的,如果需要,我可以访问曲线的参数形式。
—
andrea.al
请显示一个典型的点集!
—
Yves Daoust