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

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




⚡ 👉🏻👉🏻👉🏻 ИНФОРМАЦИЯ ДОСТУПНА ЗДЕСЬ ЖМИТЕ 👈🏻👈🏻👈🏻




























































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

Оригинальный узор на рисунке 1 состоит из суперпозиции четырех кривых. Эти кривые соответствуют некоторому регулярному образу. Алгоритм для построения этих кривых на экране монитора или на графопостроителе под управлением вычислительной машины описан в [1].
Задача проекта

– реализовать этот алгоритм в виде программы на функциональном языке программирования Lisp.
Анализируя рисунок 1, можно обнаружить, что он получен путем наложения друг на друга нескольких кривых. Первые две из них показаны на рисунке 2. Кривая S i
называется кривой Серпинского

i
-го порядка. Необходимо выяснить, какова рекурсивная схема этих кривых.
Главная особенность кривой Серпинского состоит в том, что она замкнута и в ней нет пересечений. Это означает, что основная рекурсивная схема должна давать разомкнутую кривую линию, четыре части которой соединяются линиями, не принадлежащими самому рекурсивному образу. И действительно, эти замыкающие линии представляют собой отрезки прямых в четырех внешних углах, на рисунке 2 они выделены жирными линиями. Можно считать, что они принадлежат к непустой начальной кривой S – квадрату, “стоящему” на одном углу. Теперь достаточно легко составить рекурсивную схему.
Четыре составляющих образа, для наглядности, обозначим через A
, B
, C
, D
, а процедуры, рисующие соединительные прямые, будем обозначать стрелками, указывающими соответствующем направлении. Надо отметить, что четыре рекурсивных образа по существу идентичны, но лишь повертываются на 90°.
Основной образ кривых Серпинского задается схемой:
а рекурсивные составляющие (горизонтальные и вертикальные отрезки – двойной длины):
Предположим, что для построения части прямой в нашем распоряжении есть процедура Line

, передвигающая перо в заданном направлении на заданное расстояние, причем направление задается целочисленным параметром i

, как
градусов. Если единичную прямую обозначить через h

, то с помощью рекурсивных обращений к аналогично составленным процедурам для B
и D
и к самой A
довольно просто написать процедуру, соответствующую схеме А
.
( B ( - k 1 ) ) ( Line 0 ( * 2 h ) )

Эта процедура инициируется главной программой по одному разу для каждой кривой Серпинского, образующих приведенный рисунок. Употребление явного параметра для уровня гарантирует окончание работы, так как глубина рекурсии не может быть больше k

. Главная программа строится по образцу S

. Ее задача - установить начальную точку кривой, т.е. исходные координаты пера ( P x


и P y


) и единичную длину приращения h

. Квадрат, где рисуется кривая, помещается в середине экрана, заданной ширины и высоты.
Графическое изображение полученного алгоритма представлено в следующем разделе (Рисунок 3).
По сравнению с таким рекурсивным построением эквивалентные программы, где избегали употребления рекурсии, выглядят крайне сложными и запутанными.
Рисунок 3 Схема алгоритма главной процедуры
Рисунок 4 Схема алгоритма процедуры A [1]


;; SIERPINS.LSP для XLISP версии 2.1

;; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
;; Программа построения кривых Серпинского i-го порядка.

;; Замечание:
Переменная *VMode* управляет установкой видео режима,
;; и по умолчанию установлена в значение 18.
;; Эта установка соответствует режиму 640x480 Color,
;; и работает на большинстве систем. В случае проблемы
;; с установкой этого режима необходимо выбрать
;; значение этой переменной в соответствии с документацией
( defvar
*VMode* 18 ) ;Видео режим по умолчанию
( defvar
*MaxX* 640 ) ;Максимальная ширина экрана по умолчанию
( defvar
*MaxY* 480 ) ;Максимальная высота экрана по умолчанию
( defvar
*SquareSize* 256 ) ;Размер области для построения
;; Функция инициализирует графический режим, устанавливает переменные
;; *MaxX* *MaxY* *SquareSize* в соответствии с выбранным режимом
( setq
*MaxX* 320 *MaxY* 200 *SquareSize* 128 ) )
( setq
*MaxX* 640 *MaxY* 350 *SquareSize* 128 ) )
( setq
*MaxX* 800 *MaxY* 600 *SquareSize* 512 ) )
( t ( error
Unsupported graphics mode: *VMode* ) )
;; Функция реализует задержку на заданное время
( let
( ( fintime ( + ( * time internal-time-units-per-se cond
)
( loop
( when
( > ( get-internal-run-time) fintime )
defun
div ( a b ) ( round
( / a b ) )
;; Параметры: - направление рисования (0-7)
( 1 ( setq
x ( + x Size ) y ( - y Size ) ) )
( 3 ( setq
x ( - x Size ) y ( - y Size ) ) )
( 5 ( setq
x ( - x Size ) y ( + y Size ) ) )
( 7 ( setq
x ( + x Size ) y ( + y Size ) ) )
;; Функции A, B, C, D - рекурсивные функции рисования
( B ( - k 1 ) ) ( Line 0 ( * 2 h ) )
( C ( - k 1 ) ) ( Line 2 ( * 2 h ) )
( D ( - k 1 ) ) ( Line 4 ( * 2 h ) )
( A ( - k 1 ) ) ( Line 6 ( * 2 h ) )
;; Параметры: - количество итераций
( InitGraph ) ;Установка графического режима
( setq
h ( div *SquareSize* 4 ) ) ;Вычисление длины линии
( setq
x0 ( div *MaxX* 2 ) ) ;Вычисление начальной точки
( setq
y0 ( + ( div *MaxY* 2 ) h ) ) ;для рисования
do
(( i 1 )) ;Инициализация счетчика
(( eql
i ( + Count 1 ) ) 'Done ) ;Условие завершения
( setq
x0 ( - x0 h ) ) ;Вычисление координат начальной
( setq
h ( div h 2 ) ) ;точки для рисования и
( setq
y0 ( + y0 h ) ) ;единичной длины линии
( setq
Px x0 Py y0 ) ;Установка пера
( color
i ) ;Установка цвета для рисования
( setq
i ( + i 1 )) ;Инкримент счетчика
( print
Try (SierpinskiCurve 4) ) ;Подсказка
- x86 персональный компьютер (386 минимум; 486, Pentium, или Pentium Pro рекомендуется)
- Microsoft Windows 3.1, Microsoft Windows for Workgroups, Microsoft Windows 95, Microsoft Windows NT 3.51 или 4.0
- 5 Kb свободного пространства на жестком диске
- Установленный интерпретатор XLisp версии 2.1 или выше
- Загрузить интерпретатор XLisp c параметром “Sierpins.lsp”: C:\XLISP\XLISP.EXE SIERPINS.LSP [2]


-
- В ответ на приглашение XLisp ввести: (SierpinskiCurve 4)
-
Тест проводился на рабочей станции со следующей конфигурацией:
Интерпретатор XLisp был запущен в окне MS-DOS.
Программа тестировалась при значениях параметра Count

от 1 до 4. В результате тестов были получены следующие изображения на экране монитора [3]
:
“Алгоритм + структура данных = программа”, H.Вирт
“XLisp-Plus 2.1 Programmers Manual”, David Michael Betz
[1]
Схемы алгоритмов процедур B, C и D аналогичны A, и поэтому, в их изображении нет необходимости.
[2]
Данный пример предполагает, что XLisp установлен в каталоге C:\XLISP и его запуск производится в режиме MS-DOS.
[3]
В программе был установлен графический видео режим с разрешением 640x480 256 Color

Название: Разработка программы для построения кривых Серпинского i-го порядка
Раздел: Рефераты по информатике, программированию
Тип: реферат
Добавлен 02:23:08 27 февраля 2008 Похожие работы
Просмотров: 217
Комментариев: 15
Оценило: 3 человек
Средний балл: 4.7
Оценка: неизвестно   Скачать

Срочная помощь учащимся в написании различных работ. Бесплатные корректировки! Круглосуточная поддержка! Узнай стоимость твоей работы на сайте 64362.ru
Привет студентам) если возникают трудности с любой работой (от реферата и контрольных до диплома), можете обратиться на FAST-REFERAT.RU , я там обычно заказываю, все качественно и в срок) в любом случае попробуйте, за спрос денег не берут)
Да, но только в случае крайней необходимости.

Реферат: Разработка программы для построения кривых Серпинского i-го порядка
Министерская Власть В России Реферат
Реферат: Углеводороды: крахмалы. Скачать бесплатно и без регистрации
Реферат: Анализ маркетинговой деятельности предприятия 2
Реферат: Ответы на билеты по ОБЖ 11 класса
Краткое Сочинение О Любимом Герое
Дипломная работа по теме Оценка эффективности муниципального управления на примере Приморского края
Реферат по теме Внешняя политика советского государства накануне Второй мировой войны
Курсовая работа: Электронные деньги и электронные платежи
Контрольная работа по теме Формирование институциональных предпосылок развития финансового сектора экономики Украины
Методика Обучения Реферат
Сочинение Эссе Колледж Моими Глазами
Доклад по теме Депривационный виктимизм как социально-психологический фактор риска экстремизма
Реферат: Новые системы оплаты труда
Сочинение Почему Я Работаю В Полиции
Реферат На Тему Крещение Древней Руси И Его Значение
Курсовая работа по теме Первичная фонограмма в условиях записи чистового звука к фильму
Реферат: Российская психология во второй половине XX века. Скачать бесплатно и без регистрации
Анализов Методов Лабораторной Диагностики Бактерий Курсовая
Реферат: Пиво и здоровье
Реферат по теме Образование государства
Реферат: Арсений Александрович Тарковский
Сочинение: Поэзия и жизнь в балладе "Светлана" В. А. Жуковского
Реферат: Экзаменационные билеты математическое моделирование экономических систем осенний семестр 2000 года

Report Page