我想做的是创建一个如下所示的十六进制网格。
我可以画出十六进制,但不确定如何让它们错开。所以第一行应该是图像中的 (0,0) (0,1) (0,2) (0,3),第二行应该是 (1,0) (1,1) (1,2) ( 1,3)等行中的偶数十六进制始终交错向下。
目前我知道要使用的行数/列数
hexRows
hexColumns
以及我如何绘制十六进制是这样的,i
只是在绘制十六进制时对其进行编号。
DrawSolidHex(x,y,i);
当前代码看起来像这样
begin
hexcolumns := c;
hexrows := r;
i:=1; //first cube
x := 1; //default x,y,z values
y := 1;
z := 0;
while hexrows>0 do
begin
columnssave := hexcolumns ;
while hexcolumns >0 do
begin
DrawSoildHex(X,Y,i);
i:=i+1;
x := x + 1;
hexcolumns := hexcolumns -1;
end;
y:=y+1;
x:= 1;
z:=0;
hexcolumns := columnssave;
hexrows:= hexrows-1;
end;
totalhex := i;
目前使用此代码,它只会在一条直线上绘制十六进制 x,y,(1,1) (2,1) (3,1)..ect 我不确定如何添加偏移量,计算它们,然后编码所以它会错开行。