【问题标题】:drawing points evenly distributed on a circle画点均匀分布在一个圆上
【发布时间】:2013-11-14 12:32:24
【问题描述】:

我想得到直径为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

学校、数学和 sin&cos 是很久以前的事了......所以如果有人能给我一个提示,我会很高兴

【问题讨论】:

    标签: php math geometry gd


    【解决方案1】:

    基本上只使用 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;
    

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 我不知道弧度值...抱歉
      • 查看维基百科页面以获得更好的理解。 en.wikipedia.org/wiki/Radian 简而言之,角度的弧度值是 Pi/180 乘以度数,这就是为什么简单的乘法可以解决您的转换问题。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-14
      • 2012-05-21
      • 2012-03-24
      • 1970-01-01
      • 2022-09-30
      • 1970-01-01
      相关资源
      最近更新 更多