Perl, 229 bytes
Utiliza la misma fórmula que la mayoría de los idiomas que no tienen una solución integrada conveniente para este desafío (incluso si no los miré para encontrarlo, pero esa es una fórmula bastante fácil de encontrar). Por lo tanto, no es muy interesante, pero por lo general no hay muchas respuestas de Perl para este tipo de desafíos, así que solo quería proponer uno.
$i=new Imager xsize=>700,ysize=>700;for$x(1..$_){for$y(1..$_){$i->line(color=>red,x1=>350+300*cos($a=2*pi*$x/$_),x2=>350+300*cos($b=2*pi*$y/$_),y1=>350+300*sin$a,y2=>350+300*sin$b)}}$i->write(file=>"t.png")
Y necesitará -MImager
(9 bytes), -MMath::Trig
(proporcionando pi
, 13 bytes) y -n
(1 byte) ==> + 23 bytes.
Para ejecutarlo:
perl -MImager -MMath::Trig -ne '$i=new Imager xsize=>700,ysize=>700;for$x(1..$_){for$y(1..$_){$i->line(color=>red,x1=>350+300*cos($a=2*pi*$x/$_),x2=>350+300*cos($b=2*pi*$y/$_),y1=>350+300*sin$a,y2=>350+300*sin$b)}}$i->write(file=>"t.png")' <<< 27
Creará un archivo llamado t.png
que contiene la imagen.
Sin Imager
embargo, deberá instalarlo , pero no se preocupe, es bastante fácil:
(echo y;echo) | perl -MCPAN -e 'install Imager'
(Los echo
s lo configurarán cpan si nunca lo ha usado antes (en realidad, eso solo funcionará si su perl es lo suficientemente reciente, creo que para la mayoría de ustedes lo será, ¡y lo siento por los demás!)) .
Y la versión más legible (sí, ¡es bastante legible para un script Perl!):
#!/usr/bin/perl -n
use Imager;
use Math::Trig;
$i=Imager->new(xsize=>700,ysize=>700);
for $x (1..$_){
for $y (1..$_){
$i->line(color=>red,x1=>350+300*cos($a=2*pi*$x/$_), x2=>350+300*cos($b=2*pi*$y/$_),
y1=>350+300*sin($a), y2=>350+300*sin($b));
}
}
$i->write(file=>"t.png");
-1 byte gracias a Titus.
n
y dibujar líneas para obtenern
puntos.