Un espirógrafo es un juguete que dibuja hipotrocoides y epitrocoides. Para este desafío, nos centraremos en los hipotrocoides.
De Wikipedia :
Un hipotrocoide es una ruleta trazada por un punto unido a un círculo de radio r que rueda alrededor del interior de un círculo fijo de radio R , donde el punto está a una distancia d del centro del círculo interior.
Las ecuaciones paramétricas para ellos se pueden definir como:
Donde θ es el ángulo formado por la horizontal y el centro del círculo rodante.
Su tarea es escribir un programa que dibuje el camino trazado por el punto definido anteriormente. Como entrada, se le dará R , r y d , todos los enteros entre 1 y 200 inclusive.
Puede recibir esta entrada de stdin, argumentos o entrada del usuario, pero no se puede codificar en el programa. Puede aceptarlo de la forma que le resulte más conveniente; como cadenas, enteros, etc.
Asumir:
- Las unidades de entrada se dan en píxeles.
- R > = r
La salida debe ser una representación gráfica del hipotrocoide definido por la entrada. No se permite ninguna salida ASCII u otra basada en texto. Esta imagen se puede guardar en un archivo o mostrarse en la pantalla. Incluya una captura de pantalla o imagen de la salida para una entrada de su elección.
Puede elegir cualquier color que desee para la ruta / fondo, sujeto a una restricción de contraste. Los dos colores deben tener el componente 'Valor' de HSV al menos a la mitad de la escala. Por ejemplo, si está midiendo HSV desde [0...1]
, debería haber al menos una 0.5
diferencia. Entre [0...255]
debería haber una mínima 128
diferencia.
Este es un código de golf, el tamaño mínimo del código fuente en bytes gana.
R>=r
, pero d
no está limitado a r
, y puede estar en cualquier lugar en el rango de 1-200.
R=200, r=1, d=200
. Puede ajustar el tamaño de la imagen a la entrada si lo desea, o mantenerla en un tamaño constante, siempre que esté visible.
R > r
oR ≥ r
? (Lo mismo parar
yd
.)