Разработка программы на языке LISP для построения кривых Серпинского i-го порядка

Разработка программы на языке LISP для построения кривых Серпинского i-го порядка

Необходимо выяснить, какова рекурсивная схема этих кривых. Рисунок SEQ Рисунок * ARABIC 2 Главная особенность кривой Серпинского состоит в том, что она замкнута и в ней нет пересечений. Это означает, что основная рекурсивная схема должна давать разомкнутую кривую линию, четыре части которой соединяются линиями, не принадлежащими самому рекурсивному образу. И действительно, эти замыкающие линии представляют собой отрезки прямых в четырех внешних углах, на рисунке 2 они выделены жирными линиями. Можно считать, что они принадлежат к непустой начальной кривой S – квадрату, «стоящему» на одном углу.

Теперь достаточно легко составить рекурсивную схему.

Четыре составляющих образа, для наглядности, обозначим через A , B, C, D, а процедуры, рисующие соединительные прямые, будем обозначать стрелками, указывающими соответствующем направлении. Надо отметить, что четыре рекурсивных образа по существу идентичны, но лишь повертываются на 90 ° . Основной образ кривых Серпинского задается схемой: S: A B C D а рекурсивные составляющие (горизонтальные и вертикальные отрезки – двойной длины): A: A B D A B: B C A B C: C D B C D: D A C D Предположим, что для построения части прямой в нашем распоряжении есть процедура Line , передвигающая перо в заданном направлении на заданное расстояние, причем направление задается целочисленным параметром i , как градусов. Если единичную прямую обозначить через h , то с помощью рекурсивных обращений к аналогично составленным процедурам для B и D и к самой A довольно просто написать процедуру, соответствующую схеме А. ( defun A ( k ) ( cond ( ( > k 0 ) ( A ( - k 1 ) ) ( Line 1 h ) ( B ( - k 1 ) ) ( Line 0 ( * 2 h ) ) ( D ( - k 1 ) ) ( Line 7 h ) ( A ( - k 1 ) )))) Эта процедура инициируется главной программой по одному разу для каждой кривой Серпинского, образующих приведенный рисунок.

Разное

Подобные работы

Лабораторные работы

echo "Первая часть клавиш предназначена для ввода параметров в шестнадцатеричной форме. В дальнейшем предусмотрено, что все вводимые и выводимые данные имеют шестнадцатеричный формат. На них выгравиро

Анализ пакетов обработки экспериментальных данных SABR и BOOTSTRAP

echo "Свобода слова, относительная простота донесения её до масс дали возможность не только влиять на мнение общественности, но и управлять большей её частью. Особенно ярко выражен этот процесс в Рос

Информационная система складского терминала

echo "Номенклатура производимых товаров составляет несколько сотен наименований и постоянно увеличивается. Предприятия компании расположены в различных регионах страны и работают независимо друг от д

Проектирование и создание современного web-сайта

echo "Браузеры Netscape Navigator и Microsoft Internet Explorer . На рынке доминируют два основных браузера: Netscape Navigator и Microsoft Internet Explorer. Вместе они, включая все их версии, предст

Разработка алгоритмов и программ выполнения операций над последовательными и связанными представлениями структур данных

echo "Требуется : Выполнить над ребрами орграфов операцию разности (X/Y). В результате выполнения этой операции новый орграф Z определяется в связанном представлении , а старый орграф X исправляется в

Разработка программы на языке LISP для построения кривых Серпинского i-го порядка

echo "Необходимо выяснить, какова рекурсивная схема этих кривых. "; echo ''; echo " Рисунок SEQ Рисунок * ARABIC 2 Главная особенность кривой Серпинского состоит в том, что она замкнута и в ней нет пе

Создание и описание базы данных "СТУДЕНТЫ" (Отчет по курсу "Базы данных")

echo "Содержит также следующие справочники: - справочник по кафедрам [Название|Полное название|Факультет]; - справочник по преподавателям [Фамилия|Имя|Отчество|Кафедра]; - справочник по группам [Групп