Spirograf to zabawka, która rysuje hypotrochoidy i epitrochoidy. W tym wyzwaniu skupimy się na hypotrochoidach.
Z Wikipedii :
Hipotrochoid jest ruletką wyznaczoną przez punkt przymocowany do koła o promieniu r toczącym się wokół wnętrza stałego okręgu o promieniu R , gdzie punkt jest odległością d od środka wewnętrznego koła.
Równania parametryczne dla nich można zdefiniować jako:
Gdzie θ to kąt utworzony przez poziome i środek tocznego koła.
Twoim zadaniem jest napisanie programu, który narysuje ścieżkę wyznaczoną przez punkt zdefiniowany powyżej. Jako dane wejściowe otrzymasz R , r i d , wszystkie liczby całkowite od 1 do 200 włącznie.
Możesz otrzymać te dane wejściowe ze standardowego wejścia, argumentów lub danych wejściowych od użytkownika, ale nie można go zakodować na stałe w programie. Możesz zaakceptować to w dowolnej formie, która jest dla ciebie najwygodniejsza; jako ciągi, liczby całkowite itp.
Założyć:
- Jednostki wejściowe podano w pikselach.
- R > = r
Wyjście powinno być graficzną reprezentacją hypotrochoidu zdefiniowanego przez dane wejściowe. Wyjście ASCII lub inne dane tekstowe nie są dozwolone. Ten obraz można zapisać do pliku lub wyświetlić na ekranie. Dołącz zrzut ekranu lub obraz wyjścia dla wybranego wejścia.
Możesz wybrać dowolne kolory dla ścieżki / tła, z zastrzeżeniem ograniczenia kontrastu. Te dwa kolory muszą mieć składnik „Wartość” HSV co najmniej w połowie skali. Na przykład, jeśli mierzysz HSV [0...1]
, powinna istnieć przynajmniej 0.5
różnica. Pomiędzy [0...255]
powinna być minimalna 128
różnica.
To jest golfowy kod, wygrywa minimalna wielkość kodu źródłowego w bajtach.
R>=r
, ale d
nie jest do tego ograniczony r
i może znajdować się w dowolnym miejscu w zakresie 1-200.
R=200, r=1, d=200
. Możesz zmienić rozmiar obrazu na wejście, jeśli chcesz, lub utrzymać go w stałym rozmiarze, o ile wszystko jest widoczne.
R > r
lubR ≥ r
? (To samo dotyczyr
id
.)