Chaos Гра являє собою простий метод для генерації фракталів. З огляду на початкову точку, відношення довжини r та набір 2D точок, повторно виконайте наступне:
- Зі свого набору очок виберіть навмання (рівномірно).
- Середнє значення цієї точки та останньої намальованої точки (або початкової точки), використовуючи r та 1 - r як ваги (тобто r = 0 означає, що ви отримуєте початкову точку, r = 1 означає, що ви отримуєте випадкову точку, а r = 0,5 означає, що ви отримайте крапку посередині.)
- Намалюйте отриману точку.
Наприклад, якщо ви вибрали вершини рівностороннього трикутника і r = 0,5 , нанесені точки будуть відображати трикутник Сєрпінського:
Зображення знайдено у Вікіпедії
Ви повинні написати програму або функцію, яка "грає" в гру хаосу, щоб створити фрактал.
Вхідні дані
Ви можете написати або програму, або функцію, і взяти наступні входи через ARGV, STDIN або аргумент функції:
- Кількість балів за графіком.
- Початкова координата (яка теж має бути намічена!).
- Середня вага r в інтервалі [0,1] .
- Список пунктів на вибір.
Вихідні дані
Ви можете візуалізувати на екрані або записати файл зображення. Якщо результат растеризований, він повинен бути не менше 600 пікселів з кожної сторони, всі точки повинні бути на полотні, і принаймні 75% горизонтальної та вертикальної протяжності зображення повинні бути використані для точок (цього слід уникати відповіді за допомогою єдиних чорних пікселів, які говорять, що "дійсно далеко зменшено") Х і у осі повинні бути на той же масштаб (тобто лінія від (0,0) до (1,1) повинна бути під кутом 45 градусів) , і кожна точка на графіку в області хаосу ігор повинна бути представлена в вигляді єдиної пікселів (якщо ваш спосіб побудови графіку не псевдонімує точку, він може бути поширений на 2х2 пікселі).
Кольори - це ваш вибір, але вам потрібно принаймні два кольори, що відрізняються: один для фону та один для крапок, накреслених під час гри з хаосом. Ви можете, але не обов’язково будувати точки введення.
Будь ласка, включіть у відповідь три цікаві приклади.
Оцінка балів
Це кодовий гольф, тому найкоротша відповідь (у байтах) виграє.
Редагувати: Вам більше не потрібно будувати точки введення, оскільки вони насправді не видно як пікселі.