PHP, 186 (184) 196 바이트
imagecolorallocate($i=imagecreate(601,601),~0,~0,~0);for(;$a<$p=2*M_PI;)for($b=$a+=$p/=$argv[1];$b>0;)imageline($i,(1+cos($a))*$r=300,$r+$r*sin($a),$r+$r*cos($b-=$p),$r+$r*sin($b),1);imagepng($i);
이미지를 STDOUT에 씁니다.
고장
// create image with white background
imagecolorallocate($i=imagecreate(601,601),~0,~0,~0);
// loop angle A from 0 to 2*PI
for(;$a<$p=2*M_PI;)
// loop angle B from A down to 0
for($b=$a+=$p/=$argv[1];$b;) // ($a pre-increment)
// draw black line from A to B
imageline($i, // draw line
(1+cos($a))*$r=300,$r+$r*sin($a), // from A
$r+$r*cos($b-=$p),$r+$r*sin($b), // to B ($b pre-decrement)
1 // undefined color=black
);
// output
imagepng($i);
고정 -12 바이트 n=20
교체 $p=2*M_PI
로 6
(-8), /=$argv[1]
로 =M_PI/10
(-2), 및 $b>0
과 $b
(-2)
정확한 PI / 10을 사용해도 문제가되지 않습니다. 를 사용하면 .3142
매개 변수가 지정된 버전의 반올림 오류가 남아 있지만 M_PI/10
사라져서 $b
대신 (<> 0)을 확인할 수 있습니다 $b>0
. 로 2 바이트를 절약 할 수 .314
있었지만 포인트를 상쇄했을 것입니다.
한계 $a<6
는 20 점에 대해 충분히 정확합니다.
고정 174 바이트 n=314
imagecolorallocate($i=imagecreate(601,601),~0,~0,~0);for(;$a<314;)for($b=$a++;$b--;)imageline($i,(1+cos($a))*$r=300,$r+$r*sin($a),$r+$r*cos($b),$r+$r*sin($b),1);imagepng($i);
314 포인트를 사용하면 해당 해상도에서 원이 채워집니다 (136,140, 그 이상의 모든 짝수 및 317 이상의 모든 것).
n
하고n
점을 그리 려면 선 이 좋을 것 입니다.