【发布时间】:2023-01-24 23:28:13
【问题描述】:
我有一个随机的点阵列,形成这样的形状:
但是它以这样一种方式出现,即构成它的点(坐标)随机分布在一个数组中。
我如何对它们进行排序以使它们连续(数组中的每一对连续点对应于形状中的一对连续点)?
编辑:应该更好地解释它。
我们尝试使用点的某种顺时针方向,但它在边缘和背面的直线处中断。 某种种子,其中最低的 X 点是起点,最近的点附加到它。也在边缘处中断,最近的点不需要连续的点。 如果我将上部和下部分开(使用最低的 X 点作为 Y 标准),并分别对两个数组进行排序,凹面部分也会破坏它。
这些点来自 .dat 文件,其中每行是 2 个数字,以空格分隔:
2.345 1.234
1.234 2.345
【问题讨论】:
-
你试过什么了?
-
什么是“点”?一个二元组?自定义数据结构?特定于图书馆的课程?
-
您最初是如何生成这些点的?
-
是否可以假设给定 3 个连续点 A、B、C,那么不存在点 X,使得 B 和 X 之间的距离小于 A 和 B 之间的距离以及 B 和 C 之间的距离?
-
它在边缘断开,因为数组没有足够的形状信息。有点...如果它坏了并且点错了顺序,那只是你认为它是不正确的,但它仍然是一种形状,只是一种不同的形状。似乎不能以普遍的方式完成。您可以在这里使用一些启发式方法,但在 100% 的情况下它不会准确。
标签: python point-clouds