绘制点均匀分布在圆上

时间:2013-11-14 12:32:25

标签: php math geometry gd

我想获得直径为x

的圆上的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);
?>

但似乎有错误:

http://imgur.com/EYJe3hB

很久以前,学校和数学以及罪恶和cos ...如果有人能给我一个提示,我会很高兴

2 个答案:

答案 0 :(得分:2)

基本上只使用deg2rad函数。 http://www.php.net/manual/en/function.deg2rad.php

所以改变你的cos和sin调用:

$x = round(cos(deg2rad($i))*400)+450;
$y = round(sin(deg2rad($i))*400)+450;

答案 1 :(得分:0)

PHP三角函数接受弧度值,因此您应该将$ i的值乘以Pi / 180.