[英]Efficient data structure for storing 3d points
我正在寻找用于存储3d点(x,y,z)的高效数据结构。 在数据结构中的各个点进行存储的效果应生成更高效的内存结构,并更快地搜索特定的一组坐标。 3d点正在映射到特定的ID,因此它应该能够跟踪我在寻找可用的任何实现的每组坐标。
x,y,z给出每个节点的笛卡尔坐标。
id xyz
1 14.566132 34.873772 7.857000
2 16.022520 33.760513 7.047000
3 17.542000 32.604973 6.885001
4 19.163984 32.022469 5.913000
5 20.448090 30.822802 4.860000
6 21.897903 28.881084 3.402000
7 18.461960 30.289471 8.586000
8 19.420759 28.730757 9.558000
坐标的数量将是巨大的,可能约为1000000。
提前致谢!
我听说您要查找的坐标将与结构中的坐标完全匹配。 可能取决于您的空间分布,您可以创建一个散列函数,该函数采用坐标并尝试生成相当独特的内容,然后仅使用标准散列图。 大多数现代语言都提供某种哈希映射实现,因此您所需要做的就是为坐标提供适当的哈希值。
如果您需要在测试坐标附近查找坐标,则可以选择球形树或八叉树等,但这听起来并不是您所需要的。
您可以使用struct
:
struct coordinate
{
double x;
double y;
double z;
} points[1000000];
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.