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
ポイントに線を引く必要がある場合は、クールです。