Рисование точек, равномерно распределенных по кругу
Я хочу получить координаты n точек на окружности с диаметром х
я попробовал это:
<?php
header("Content-Type: image/png");
$img = @imagecreate(900, 900)
or die("Cannot Initialize new GD image stream");
$background_color = imagecolorallocate($img, 255, 255, 255);
$red = imagecolorallocate($img, 255, 0, 0);
for($i=0;$i<=360;$i+=10)
{
$x = round(cos($i)*400)+450;
$y = round(sin($i)*400)+450;
imagefilledellipse($img, $x, $y, 3, 3, $red);
}
imagepng($img);
imagedestroy($img);
?>
но, похоже, есть ошибка:
школа и математика и грех и так давно... так что я был бы счастлив, если бы кто-то мог дать мне подсказку
2 ответа
Решение
В основном просто используйте функцию deg2rad. http://www.php.net/manual/en/function.deg2rad.php
Так что поменяйте ваши призывы к cos и греху так:
$x = round(cos(deg2rad($i))*400)+450;
$y = round(sin(deg2rad($i))*400)+450;
Тригонометрические функции PHP принимают значения в радианах, поэтому вы должны умножить значения $i на Pi/180.