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

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


 

蜂窝六边形

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

ArcMap手动制作

1、基本思路:

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

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

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

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

java蜂窝六边形 六边形蜂窝简笔画_python

2、基本参数:

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

java蜂窝六边形 六边形蜂窝简笔画_fish_02


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

java蜂窝六边形 六边形蜂窝简笔画_arcgis_03


长度1:生成的fishnet的长

长度2:生成的fishnet的宽

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

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

java蜂窝六边形 六边形蜂窝简笔画_fish_04


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

java蜂窝六边形 六边形蜂窝简笔画_gis_05

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

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

java蜂窝六边形 六边形蜂窝简笔画_python_06


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

java蜂窝六边形 六边形蜂窝简笔画_gis_07

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

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

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

java蜂窝六边形 六边形蜂窝简笔画_fish_08

 

ArcGIS Pro工具生成

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

java蜂窝六边形 六边形蜂窝简笔画_fish_09


输入参数即可

java蜂窝六边形 六边形蜂窝简笔画_fish_10

生成结果如下

java蜂窝六边形 六边形蜂窝简笔画_fish_11

ArcPy实现(python2)

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