Враховуючи кількість вершин n ≥ 3
і "розмір кроку" 1 ≤ m < n/2
(із зазначенням відстані між двома з'єднаними вершинами), виведіть графічне зображення відповідної регулярної поліграми . Якщо поліграма складається з декількох замкнених петель, кожна петля повинна бути виведена в інший колір лінії. (Якщо це звучить заплутано, наведені нижче приклади повинні сподіватися, що все з’ясується.)
Правила
Будь-яке розумне рішення проблеми, ймовірно, автоматично задовольнить ці правила - вони просто там, щоб поставити деякі обмеження щодо параметрів виводу, щоб запобігти відповідям на кшталт "Цей чорний блок є повністю поліграмою, але ви не можете його бачити, оскільки Я встановив ширину лінії понад 9000. "
- Ви можете надати поліграму або в файл (який може бути записаний на диск, або в стандартний вихідний потік) або відобразити його на екрані.
- Ви можете використовувати або векторну, або растрову графіку. Якщо ваш вихідний сигнал растрований, зображення має мати розміри 400x400 пікселів або більше, а радіус поліграми (відстань від центру до кожної вершини) повинен бути між 35% і 50% від бічної довжини.
- Співвідношення сторін поліграми повинно бути 1 (щоб вершини лежали на правильному колі) - полотно зображення може бути прямокутним.
- Лінії поліграми повинні бути не товщими 5% радіусу (і, звичайно, вони повинні мати ненульову товщину, щоб бути видною).
- Додатково до поліграми можна зобразити осі або рамку, але нічого іншого.
- Ви можете вибрати будь-який (суцільний) колір фону.
- Для поліграм, що складаються з декількох замкнених петель, ви повинні підтримувати щонайменше 6 візуально відмінних кольорів, всі вони повинні відрізнятися від фону. (Сіра гамма добре, за умови, що відтінки достатньо розповсюджені по спектру.) Ваш код все одно повинен працювати більше 6 циклів, але кольори не повинні відрізнятись від будь-яких додаткових циклів (тобто ви також можете повторно використовувати кольори з попередніх петель у цій точці).
Це кодовий гольф, тому найкоротша відповідь (у байтах) виграє.
Приклади
Ось усі результати до n = 16
(де стовпець відповідає n
і рядок до m
):
Клацніть для збільшення версії.
В якості прикладів більше n
, ось (n, m) = (29, 11)
і (30, 12)
: