Розробка програми для побудови кривих Серпінського i-го порядку
Зміст
Завдання
Формалізація завдання p>
Схема алгоритму p>
Текст програми p>
Керівництво користувача p>
Тест програми p>
Література p>
Завдання
Оригінальний візерунок на малюнку 1 складається з суперпозиції чотирьох кривих. Ці криві відповідають певному регулярному образу. Алгоритм для побудови цих кривих на екрані монітора або на графобудівники під управлінням обчислювальної машини описаний в [1]. P>
Завдання проекту b> - реалізувати цей алгоритм у вигляді програми на функціональній мові програмування Lisp. p>
b>
Малюнок 1 b> p>
Аналізуючи малюнок 1, можна виявити, що його отримано шляхом накладення один на одного декількох кривих. Перші дві з них показані на малюнку 2. Крива Si називається кривої Серпінського b> i-го порядку. Необхідно з'ясувати, яка рекурсивна схема цих кривих. P>
b>
Малюнок 2 b> p>
Головна особливість кривої Серпінського полягає в тому, що вона замкнена і в ній немає перетинів. Це означає, що основна рекурсивна схема повинна давати розімкнений криву лінію, чотири частини якої з'єднуються лініями, що не належать самому рекурсивного образу. І дійсно, ці замикають лінії являють собою відрізки прямих у чотирьох зовнішніх кутах, на малюнку 2 вони виділені жирними лініями. Можна вважати, що вони належать до непорожній початкової кривої S - квадрату, "стоїть" на одному кутку. Тепер досить легко скласти рекурсивну схему. P>
Чотири складових образу, для наочності, позначимо через A b>, B b>, C b>, D b>, а процедури , що змальовують з'єднувальні прямі, будемо позначати стрілками, що вказують відповідному напрямі. Треба зазначити, що чотири рекурсивних образу по суті ідентичні, але лише повертиваются на 90 °
. p>
Основний образ кривих Серпінського задається схемою: p>
S: A