如何排序三维点?

时间:2014-02-19 15:31:16

标签: algorithm sorting 3d point

假设您在3D中有一些点。您希望按升序或降序对其进行排序。您在排序时不考虑CW / CCW。你怎么排序?

1 个答案:

答案 0 :(得分:1)

对3D点进行排序的一种方法是比较它们的大小 - 它们与原点(0,0,0)的距离 - 可以使用毕达哥拉定理的3D模拟来计算:

M = sqrt(x^2 + y^2 + z^2) http://www.sciweavers.org/upload/Tex2Img_1392933041/eqn.png

然后,您将拥有一个浮点/双打列表,可以使用任何传统的排序算法进行排序。

但这只是最常用的方法。存在无限多种比较3D点的方法,其中一些比其他点更敏感。例如,哪个是“更大”的点,(1,0,0)或(-10,-50,5)?比较X或Y坐标将表明前者更大,而比较Z坐标或幅度表明后者更大。这些答案都不是完全正确或错误的;这实际上取决于您的应用程序需要做什么。