一般関数円内のランダムな点を返す:
/**
* @param $radius integer
* @return array['x', 'y']
*/
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);
}
// Output the image.
header("Content-type: image/png");
imagepng($image);
どこサークル内の点を取得するために、計算
y
値が最大であります
半径10000の円を中心に(10000,10000)としますか?あなたが第1四半期からのみサンプリングしない限り、半径の20000は残りの制限事項と意味をなさない。 – apokryfos
-20,000〜20,000、円の中心は0 –
[場所の周りにランダム座標を生成する]の可能な複製(http://stackoverflow.com/questions/7620550/generate-random-coordinates-around-a-location) – matiaslauriti