蜂窝六边形制作的几种方式

  • 蜂窝六边形
  • ArcMap手动制作
  • ArcGIS Pro工具生成
  • ArcPy实现(python2)

 

蜂窝六边形

推荐使用ArcGIS Pro直接制作,简单方便 运算速度也比Arcmap快得多
 

ArcMap手动制作

1、基本思路:

1)、依据六边形特点——六个边长度相同且每条边的两端点与中心所成夹角均为60°;

2)、利用fishnet工具生成固定长宽的矩形及其中心点(主要是点,或者计算坐标值转点也可以);

3)、利用工具泰森多边形绘图依据Delaunay三角网,绘制每条三角网边长的中垂线并相连成形的原理完成蜂窝的绘制;

4)、需要计算准确参数以生成合适的坐标点,才能生成准确的蜂窝六边形,如下就是随意参数生成的图形

python 蜂窝六边形问题 六边形巢方蜂窝怎么画_泰森多边形

2、基本参数:

绘制原理以下图为基础底图进行演示

python 蜂窝六边形问题 六边形巢方蜂窝怎么画_python 蜂窝六边形问题_02


主要需要求取的参数如下图

python 蜂窝六边形问题 六边形巢方蜂窝怎么画_python 蜂窝六边形问题_03


长度1:生成的fishnet的长

长度2:生成的fishnet的宽

长度3:将fishnet中心点移动的 Y值

长度4:将fishnet中心点移动的 X值长度1求解:求解过程略,长度为3r

python 蜂窝六边形问题 六边形巢方蜂窝怎么画_fish_04


长度2:求解过程略,长度为 根号3r

python 蜂窝六边形问题 六边形巢方蜂窝怎么画_python_05

1)、使用fishnet工具,生成渔网的长宽分别为 3r 和 √3r,r为蜂窝六边形的外接圆半径

2)、将生成的渔网中心点复制一份,再进行平移,平移的X,Y分别为 2/3r 和 √3/2r

python 蜂窝六边形问题 六边形巢方蜂窝怎么画_泰森多边形_06


3)、调用泰森多边形工具,对点数据求取结果

python 蜂窝六边形问题 六边形巢方蜂窝怎么画_python 蜂窝六边形问题_07

关于r的取值:
1)、人为指定正六边形的最小外接圆的半径

2)、由正六边形的面积求取r

正六边形的面积为 s = 3√3/2 r² ,由s求取r即可

python 蜂窝六边形问题 六边形巢方蜂窝怎么画_泰森多边形_08

 

ArcGIS Pro工具生成

工具箱——采样——生成细分

python 蜂窝六边形问题 六边形巢方蜂窝怎么画_泰森多边形_09


输入参数即可

python 蜂窝六边形问题 六边形巢方蜂窝怎么画_泰森多边形_10

生成结果如下

python 蜂窝六边形问题 六边形巢方蜂窝怎么画_泰森多边形_11

ArcPy实现(python2)

清理下草稿,留个坑,以后想写再补。。。