Uno spirografo è un giocattolo che disegna ipotrochoidi ed epitrochoidi. Per questa sfida, ci concentreremo solo sugli ipotrochoidi.
Da Wikipedia :
Un ipotrochoid è una roulette tracciata da un punto attaccato a un cerchio di raggio r che rotola all'interno di un cerchio fisso di raggio R , dove il punto è una distanza d dal centro del cerchio interno.
Le equazioni parametriche per esse possono essere definite come:
Dove θ è l'angolo formato dall'orizzontale e dal centro del cerchio di rotolamento.
Il tuo compito è scrivere un programma che disegnerà il percorso tracciato dal punto sopra definito. Come input, ti verranno dati R , r e d , tutti i numeri interi compresi tra 1 e 200 inclusi.
È possibile ricevere questo input da stdin, argomenti o input dell'utente, ma non può essere codificato nel programma. Puoi accettarlo in qualunque forma sia più conveniente per te; come stringhe, numeri interi, ecc.
Assumere:
- Le unità di input sono indicate in pixel.
- R > = r
L'output dovrebbe essere una rappresentazione grafica dell'ipotrochoid definito dall'input. Non è consentito alcun output basato su testo ASCII o altro. Questa immagine può essere salvata in un file o visualizzata sullo schermo. Includi uno screenshot o un'immagine dell'output per un input di tua scelta.
Puoi scegliere tutti i colori che ti piacciono per il percorso / sfondo, soggetto a una limitazione del contrasto. I due colori devono avere il componente "Valore" di HSV almeno a metà della scala. Ad esempio, se stai misurando HSV da [0...1]
, ci dovrebbe essere almeno una 0.5
differenza. Tra [0...255]
ci dovrebbe essere una 128
differenza minima .
Questo è un codice golf, vince la dimensione minima del codice sorgente in byte.
R>=r
, ma d
non è vincolato a r
, e può trovarsi ovunque nell'intervallo 1-200.
R=200, r=1, d=200
. Se lo desideri, puoi ridimensionare l'immagine sull'input o mantenerla a dimensioni costanti, purché sia tutta visibile.
R > r
oR ≥ r
? (Lo stesso perr
ed
.)