除了 Corey 的注释外,这是他所说的代码类型。请注意,我总是绘制一个外部网格边框,因此绘制线条将始终需要
1 + ceil((rows+cols)/2) 个操作。对于 20X20 网格,这意味着 21 个操作,10X25 网格需要 19 个操作
<?php
function draw_grid(&$img, $x0, $y0, $width, $height, $cols, $rows, $color) {
imagerectangle($img, $x0, $y0, $x0+$width*$cols, $y0+$height*$rows, $color);
$x1 = $x0;
$x2 = $x0 + $cols*$width;
for ($n=0; $n<ceil($rows/2); $n++) {
$y1 = $y0 + 2*$n*$height;
$y2 = $y0 + (2*$n+1)*$height;
imagerectangle($img, $x1,$y1,$x2,$y2, $color);
}
$y1 = $y0;
$y2 = $y0 + $rows*$height;
for ($n=0; $n<ceil($cols/2); $n++) {
$x1 = $x0 + 2*$n*$width;
$x2 = $x0 + (2*$n+1)*$width;
imagerectangle($img, $x1,$y1,$x2,$y2, $color);
}
}
$img = imagecreatetruecolor(300, 200);
$red = imagecolorallocate($img, 255, 0, 0);
draw_grid($img, 0,0,15,20,20,10,$red);
header("Content-type: image/png");
imagepng($img);
imagedestroy($img);
?>
玩得开心!)