Спірограф - це іграшка, яка малює гіпотрохоїди та епітрохоїди. Для цього завдання ми просто зосередимось на гіпотрохоїдах.
З Вікіпедії :
Гіпотрохоїд - це рулетка, простежена точкою, приєднаною до кола радіуса r, котиться навколо внутрішньої сторони нерухомого кола радіуса R , де точка - відстань d від центру внутрішнього кола.
Параметричні рівняння для них можна визначити як:
Де θ - кут, утворений горизонталлю та центром кола кочення.
Ваше завдання - написати програму, яка намалюватиме простежений шлях, визначений вище. Як вхід, вам будуть надані R , r і d , цілі числа від 1 до 200 включно.
Ви можете отримати цей вхід із stdin, аргументів або вводу користувача, але він не може бути жорстко закодований в програму. Ви можете прийняти його в будь-якій зручній для вас формі; як рядки, цілі числа тощо
Припустимо:
- Одиниці введення наведені в пікселях.
- R > = r
Вихідні дані повинні бути графічним зображенням гіпотрохоїда, визначеного введенням. Не допускається жодне ASCII- або інше текстове виведення. Це зображення можна зберегти у файл або відобразити на екрані. Додайте скріншот або зображення виводу для введення на ваш вибір.
Ви можете обрати будь-які кольори, які вам подобаються для шляху / фону, за умови обмеження контрасту. У двох кольорах повинен бути компонент «Значення» HSV не менше половини шкали. Наприклад, якщо ви вимірюєте показник HSV [0...1]
, має бути принаймні 0.5
різниця. Між [0...255]
ними має бути мінімальна 128
різниця.
Це гольф коду, мінімальний розмір вихідного коду в байтах виграє.
R>=r
, але d
не обмежений r
і може бути в будь-якому місці діапазону 1-200.
R=200, r=1, d=200
. Ви можете розмістити зображення на вхід, якщо хочете, або зберегти його в постійному розмірі, доки воно все видно.
R > r
чиR ≥ r
? (Те саме дляr
іd
.)