返回圆内随机点的通用函数:
function getPoint($radius)
{
$i = mt_rand() / mt_getrandmax();
$j = mt_rand() / mt_getrandmax();
$w = $radius * sqrt($i);
$theta = (2 * pi() * $j);
$x = $radius + ($w * cos($theta));
$y = $radius + ($w * sin($theta));
return compact('x', 'y');
}
GD中的奖金实现:
$radius = 250;
$image = imagecreatetruecolor((2 * $radius) + 1, (2 * $radius) + 1);
$white = imagecolorallocate($image, 255, 255, 255);
$black = imagecolorallocate($image, 0, 0, 0);
imagefill($image, 0, 0, $white);
imageellipse($image, $radius, $radius, $radius * 2, $radius * 2, $black);
for ($a = 0; $a < 1000; $a++)
{
$point = getPoint($radius);
imagesetpixel($image, $point['x'], $point['y'], $black);
}
header("Content-type: image/png");
imagepng($image);