gpt4 book ai didi

php - 在六边形场上通过螺旋创建单元格的算法

转载 作者:可可西里 更新时间:2023-11-01 13:58:59 26 4
gpt4 key购买 nike

帮助找到一种在六边形区域上通过螺旋线创建单元格的算法。

看图:

alt text

让我们想象一个无量纲的二维数组。X轴为蓝色线,Y轴为水平线,螺旋线为红色。

我需要从中心点 x0y0 到 N 点螺旋添加单元格

请告诉我解决问题的方法。谢谢!

最佳答案

我建议稍微更改单元格编号,以便在您向下和向右(或向上和向左)时 X 保持不变。然后像下面这样的简单算法应该可以工作:

  int x=0, y=0;   
add(x, y); // add the first cell
int N=1
for( int N=1; <some condition>; ++N ) {
for(int i=0; i<N; ++i) add(++x, y); // move right
for(int i=0; i<N-1; ++i) add(x, ++y); // move down right. Note N-1
for(int i=0; i<N; ++i) add(--x, ++y); // move down left
for(int i=0; i<N; ++i) add(--x, y); // move left
for(int i=0; i<N; ++i) add(x, --y); // move up left
for(int i=0; i<N; ++i) add(++x, --y); // move up right
}

这会生成如下点:

Plot of generated points

转换后我们得到:

Transformation of the generated points into a hex grid

关于php - 在六边形场上通过螺旋创建单元格的算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2142431/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com