如何定义一个圆形区域来设置PHP生成的图片中的随机坐标?

如何定义一个圆形区域来设置PHP生成的图片中的随机坐标?,php,image,Php,Image,我试图在PHP生成的图片中,从图像的中心点开始,以“N”像素为半径,在任意位置绘制圆 我知道如何在正方形的边界上做这件事(我也很知道如何在菱形的边界上做这件事),但是圆形的方式对我来说更难理解 这是我到目前为止得到的代码。 图像是600*600px,我在水平和垂直居中的300*300px正方形区域中生成100个25*25px的白色圆圈 $w = $h = 600; $img = imagecreatetruecolor($w,$h); $cl = imagecolorallocatealpha(

我试图在PHP生成的图片中,从图像的中心点开始,以“N”像素为半径,在任意位置绘制圆

我知道如何在正方形的边界上做这件事(我也很知道如何在菱形的边界上做这件事),但是圆形的方式对我来说更难理解

这是我到目前为止得到的代码。 图像是600*600px,我在水平和垂直居中的300*300px正方形区域中生成100个25*25px的白色圆圈

$w = $h = 600;
$img = imagecreatetruecolor($w,$h);
$cl = imagecolorallocatealpha($img,255,255,255,0);
for ($i=0;$i<=100;$i++){ // GENERATE 100 CIRCLES
    $x = rand(150,450);
    $y = rand(150,450);
    imagefilledellipse($img, $x, $y, 25, 25, $cl);
}
header('Content-Type: image/jpeg');
imagejpeg($img);
imagedestroy($img);
$w=$h=600;
$img=imagecreatetruecolor($w,$h);
$cl=imagecolorallocatealpha($img,255255,0);

对于($i=0;$i而不是尝试查找(x,y)坐标,您可以随机化极坐标:

  • 0°和360°之间的角度
  • 半径介于25和300-25之间:有了这些限制,您可以确保您的小圆始终位于圆边界内
然后通过标准公式转换这些极坐标

x = r * cos(t)
y = r * sin(t)
x = r * cos(t)
y = r * sin(t)