Un spirographe est un jouet qui dessine des hypotrochoïdes et des épitrochoïdes. Pour ce défi, nous allons nous concentrer uniquement sur les hypotrochoïdes.
De Wikipédia :
Un hypotrochoïde est une roulette tracée par un point attaché à un cercle de rayon r roulant autour de l'intérieur d'un cercle fixe de rayon R , où le point est à une distance d du centre du cercle intérieur.
Les équations paramétriques pour elles peuvent être définies comme:
Où θ est l'angle formé par l'horizontale et le centre du cercle de roulement.
Votre tâche consiste à écrire un programme qui dessinera le chemin tracé par le point défini ci-dessus. En entrée, vous recevrez R , r et d , tous les entiers compris entre 1 et 200 inclus.
Vous pouvez recevoir cette entrée depuis stdin, des arguments ou une entrée utilisateur, mais elle ne peut pas être codée en dur dans le programme. Vous pouvez l'accepter sous la forme qui vous convient le mieux; sous forme de chaînes, entiers, etc.
Présumer:
- Les unités d'entrée sont données en pixels.
- R > = r
La sortie doit être une représentation graphique de l'hypotrochoïde définie par l'entrée. Aucune sortie ASCII ou autre texte n'est autorisée. Cette image peut être enregistrée dans un fichier ou affichée à l'écran. Inclure une capture d'écran ou une image de la sortie pour une entrée de votre choix.
Vous pouvez choisir toutes les couleurs que vous souhaitez pour le chemin / arrière-plan, sous réserve d'une restriction de contraste. Les deux couleurs doivent avoir un composant HSV «Value» à au moins la moitié de l'échelle. Par exemple, si vous mesurez le HSV à partir de [0...1]
, il devrait y avoir au moins une 0.5
différence. Entre [0...255]
il devrait y avoir une 128
différence minimale .
Il s'agit d'un code golf, la taille minimale du code source en octets gagne.
R>=r
, mais d
n'est pas limité à r
, et peut être n'importe où dans la plage 1-200.
R=200, r=1, d=200
. Vous pouvez redimensionner l'image à l'entrée si vous le souhaitez, ou la conserver à une taille constante, tant qu'elle est entièrement visible.
R > r
ouR ≥ r
? (Idem pourr
etd
.)