algorithm - 使用图形的六边形部分球体表示

标签 algorithm graph geometry visualization geo

问题:球体不能仅使用六边形瓷砖进行镶嵌。

目标:创建一个由离散的六边形区域组成的地球 map 。

要求:

一个。地球/球体/行星的图形表示。

将区域分割为六角形。

十六进制可能包含一些东西。

瓷砖的数量应在 1 000 到 10 000 之间。

合理的不准确性是可以的。

想法:

  1. 创建一个表示六边形的无向图。因为六边形必须始终恰好有 6 个邻居,所以该图需要是 6-regular 并且包含 1 000 < N < 10 000 个顶点和 3N 条边(来自握手引理)。它可以存储为带有指向顶点实例的指针的邻接矩阵。

  2. 顶点实例填充有信息。例如,在游戏中,这可能是单位。

  3. 视觉呈现:没有屏幕可以一次显示整个地球。因此,为了显示我们地球的一部分,我们首先选择应该位于显示中间的顶点并将其显示为十六进制。然后,从邻接矩阵中,我们拉出它的直接邻居并将它们定位为六边形。对于这些邻居中的每一个,我们拉起下一层邻居,依此类推,直到屏幕被填满。

问题:

I 是否有一种算法可以用来构造 1. 中描述的图?

II 我能否证明在选定的相邻深度内,不会出现使图形表示变得不可能的冲突?显然,至少 1 + 6 个六角形的显示深度不会出现冲突。

if I&II:
    Do you think the described approach is promising enough to try and implement?

最佳答案

从来没有人回答过,但答案是这是不可能的。覆盖球体的有限图的欧拉特征必须为 2(请参阅 http://en.wikipedia.org/wiki/Euler_characteristic 了解欧拉特征),而由六边形构成的图的欧拉特征始终为 0。

你必须在某个地方有不同大小的形状。

关于algorithm - 使用图形的六边形部分球体表示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29702420/

相关文章:

java - 需要 java 算法的帮助来查找最大值和最小值

algorithm - 合适的树数据结构

在 C/C++ 中创建 "igraph"中的加权无向图

python - “图形”对象没有属性 'node'

algorithm - 最宽路径问题有哪些应用?

java - 确定多边形上线段的最佳起点和终点

algorithm - 通过边删除创建规则子图

algorithm - 如何平滑 3D 体素世界的 block ?

javascript - 如何在 Three.js 中动态更改几何网格的尺寸

geometry - 连接点和基于点的位置分析确定几何图形的问题