Dado el número de vértices n ≥ 3
y el "tamaño del paso" 1 ≤ m < n/2
(que indica la distancia entre dos vértices conectados), genera una representación gráfica del correspondiente poligrafo regular . Si el poligrama consta de múltiples bucles cerrados, cada bucle debe representarse en un color de línea diferente. (Si esto suena confuso, los ejemplos a continuación deberían aclarar las cosas).
Reglas
Es probable que cualquier solución razonable al problema satisfaga estas reglas automáticamente: solo están allí para poner algunas restricciones en los parámetros de la salida a fin de evitar respuestas como "Este bloque negro es totalmente un poligrama, pero no puede verlo porque Configuré el ancho de línea en más de 9000 "
- Puede representar el poligrama en un archivo (que puede escribirse en el disco o en la secuencia de salida estándar) o mostrarlo en la pantalla.
- Puede usar gráficos vectoriales o de trama. Si su salida está rasterizada, su imagen debe tener dimensiones de 400x400 píxeles o más, y el radio del poligramo (la distancia desde el centro a cada vértice) debe estar entre el 35% y el 50% de la longitud del lado.
- La relación de aspecto del poligrafo debe ser 1 (para que sus vértices se encuentren en un círculo apropiado): el lienzo de la imagen puede ser rectangular.
- Las líneas del poligrafo no deben ser más gruesas que el 5% del radio (y, por supuesto, deben tener un grosor distinto de cero para ser visibles).
- Puede renderizar ejes o un marco además del poligrafo, pero nada más.
- Puede elegir cualquier color de fondo (sólido).
- Para los poligramas que consisten en múltiples bucles cerrados, debe admitir al menos 6 colores visualmente distintos , todos los cuales deben ser diferentes del fondo. (La escala de grises está bien, siempre que los tonos estén lo suficientemente extendidos en todo el espectro). Su código aún debe funcionar para más de 6 bucles, pero los colores no tienen que distinguirse para ningún bucle adicional (es decir, también puede reutilizar colores de bucles anteriores en ese punto).
Este es el código de golf, por lo que gana la respuesta más corta (en bytes).
Ejemplos
Aquí están todas las salidas hasta n = 16
(donde corresponde la columna n
y la fila a m
):
Haga clic para una versión más grande.
Como ejemplos para grandes n
, aquí están (n, m) = (29, 11)
y (30, 12)
: