Я дивлюся через горищне вікно у двір мого сусіда. У них собака прикута до посту в центрі двору. Собака бігає по двору, але завжди знаходиться на кінці свого ланцюга, тому закінчується, залишаючи слід у бруді. Зазвичай ця доріжка була б ідеально круглою, але у моїх сусідів є кілька інших жердин у своєму дворі, на які зациклюється собачий ланцюг. Щоразу, коли ланцюг собак ударяється по полюсу, собака починає обертатися навколо нового полюса, якою б довжиною ланцюга не залишалося його радіусом. Оскільки всі полюси, собака та ланцюг мають нульову ширину (мої сусіди - математики), ланцюг може накручуватися навколо стовпа нескінченно без радіусу кола. Собака також може пройти через ланцюг (тільки не її нашийник), якщо ланцюг стоїть на своєму шляху. Помітивши цю дивацтво деякий час, я вирішив написати якийсь код, щоб імітувати собаку мого сусіда. Код візьме місця центрального стовпа, до якого прикута собака, місця розташування інших жердин у моєму дворі сусідів, довжина ланцюга та вихідне розташування собаки, і виведе діаграма із зазначенням стежка, де собака зносила траву. Ви можете припустити, що будь-яка комбінація наведеного нижче є постійною (і, отже, не приймати їх як вхідні дані):
Розташування жердини, до якого прикута собака
Довжина ланцюга
Початкове місце розташування собаки
Сонце піднімається, тому простір на підлозі мого горища, освітлений вікном, скорочується, даючи мені все менше місця для написання коду. Спробуйте звести до мінімуму кількість байтів вашого коду, щоб у мене було місця для складання його на мансардному поверсі.
Тестові справи
Тут я припускаю, що собака починає 3 одиниці на південь від того, до якого полюса вона прикута (червона крапка), розташована в 0,0
. Я вказав, де розташовані полюси з крапками для наочності, вам не потрібно включати їх у свій висновок.
Poles at 1,2 -1,2
Poles at 0,.5
Poles at 0,1 1,1 -2,1 -1,-.5
Poles at 0,1 1,1
{0,.5}
перевернутого вертикально без найбільшого кола. Собака по суті починає спійматися на другому полюсі.
{0,-.5}
?