49322

Моделирование логических игровых программ средствами Delphi

Курсовая

Информатика, кибернетика и программирование

Объект исследования – применение среды программирования Borland Delphi с целью изучения возможности отображения графической информации, построения фракталов.

Русский

2014-01-12

747.5 KB

12 чел.

МИНИСТЕРСТВО ОБРАЗОВАНИЯ РЕСПУБЛИКИ БЕЛАРУСЬ

УЧРЕЖДЕНИЕ ОБРАЗОВАНИЯ

«БАРАНОВИЧСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»

Факультет  ___________________________________

Кафедра _____________________________________

Дата регистрации работы в деканате   ____________

Дата регистрации работы на кафедре  ____________

Отметка о допуске к защите                 ____________

Оценка за защиту                                   ____________

КУРСОВАЯ РАБОТА

по дисциплине «Основы алгоритмизации и программирования»

Тема: «Моделирование логических игровых программ средствами Delphi»

Исполнитель:

студент 1 курса, группы ИСТ-12

  студент (факультет, курс, группа)

Сергеев Андрей Сергеевич

(фамилия, имя, отчество)

Руководитель:

преподаватель-стажер

 (ученое  звание,  ученая  степень,  должность)

Тимовец Анна Николаевна

(фамилия, имя, отчество)

Барановичи 2013

МИНИСТЕРСТВО ОБРАЗОВАНИЯ РЕСПУБЛИКИ БЕЛАРУСЬ

УЧРЕЖДЕНИЕ ОБРАЗОВАНИЯ

«БАРАНОВИЧСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»

РЕЦЕНЗИЯ

на курсовую работу

(регистрационный №_____)

Студента____________________________________________________

Факультет___________________________________________________

Курс_______________

Дисциплина

____________________________________________________________

Рецензент

____________________________________________________________

Дата получения работы для рецензирования ______________________

Дата возвращения работы после рецензирования __________________

Оценка_________ Подпись преподавателя-рецензента______________

Текст рецензии:

________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

__________________________________________________________________

________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

__________________________________________________________________

____________________________________________________________________________________________________________________________________

РЕФЕРАТ

Курсовая работа: 27 с.,11 рис.,7 источников, 2 прил., 6 табл.

СРЕДА DELPHI,  ГРАФИЧЕСКАЯ ПРОГРАММА,  ПОСТРОЕНИЕ ФРАКТАЛА, ВЕРОЯТНОСТНЫЕ РАСПРЕДЕЛЕНИЯ

Объект исследования – применение среды программирования Borland Delphi с целью изучения возможности отображения графической информации, построения фракталов.

Предмет исследования – среда Borland Delphi и ее графические средства для построения фрактальных множеств.

Цель работы – написать программу на Borland Delphi для построения изображения листа папоротника при помощи вероятностных распределений с использованием средств для отображения графической информации.

Основой для выполнения работы стала справочная, научная и учебная литература.

При выполнении работы использовался метод: анализ научно-методической литературы, проектов.

Областью возможного практического применения данной работы является использование материала проекта для ознакомления с графическими  возможностями Delphi, построения фрактальных изображений сложной формы.

 Автор подтверждает, что приведенный в работе расчетно-аналитический материал правильно и объективно отражает состояние исследуемого процесса, а все заимствованные из литературных и других источников теоретические, методологические и методические положения и концепции сопровождаются ссылками на их авторов.

________________________

(подпись студента)


СОДЕРЖАНИЕ

ВВЕДЕНИЕ……………………………………………………………………..…6

1  ТЕОРЕТИЧЕСКАЯ ЧАСТЬ…………………..……………………………….8

1.1 Постановка задачи………………………………………………..……8

1.2 Математическая модель фрактала………………………………….…8

1.3 Алгоритм решения задачи…………………………………………….8

1.4 Блок-схема алгоритма……………………………………………......10

2  ПРАКТИЧЕСКАЯ ЧАСТЬ………………………………………………...…12

2.1 Описание объектов, свойств, методов……………………………….12

2.2 Формы и основные модули текста программы……………………..17

2.3 Результаты тестирования программного продукта…………………20

2.4 Анализ результатов……………….……...…………………………...24

ЗАКЛЮЧЕНИЕ………………………………………………………….………25

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ ……………………..……...27

ПРИЛОЖЕНИЕ А ………………………….…...………………………………28

ПРИЛОЖЕНИЕ Б ……………………………………………………...………..32


ВВЕДЕНИЕ

В последние десятилетия резко возрос интерес к программированию. Это связано с развитием и внедрением в повседневную жизнь цифровых технологий.

Бурное развитие вычислительной техники, потребность в эффективных средствах разработки программного обеспечения привели к появлению систем программирования, ориентированных на так называемую "быструю разработку", среди которых можно выделить Borland Delphi.

Поскольку среда разработки Borland Delphi 7 является  одной из самых простых и удобных среди всех мощных пакетов, то она прекрасно подходит для построения графических приложений  для операционной системы Windows.

При построение  математических структур наряду с точностью важным фактором является скорость расчета точек и их построения. Данная программа разработанная в среде Borland Delphi 7 может за минимальное время построить фрактал «Лист папоротника» в заданном масштабе,

Фракта́л (лат. fractus — дроблёный, сломанный, разбитый) — геометрическая фигура, обладающая свойством самоподобия, то есть составленная из нескольких частей, каждая из которых подобна всей фигуре в целом.

Роль фракталов в машинной графике сегодня достаточно велика. Они приходят на помощь, например, когда требуется, с помощью нескольких коэффициентов, задать линии и поверхности очень сложной формы. С точки зрения машинной графики, фрактальная геометрия незаменима при генерации искусственных облаков, гор, деревьев, поверхности моря. Фактически это способ легкого представления сложных объектов, образы которых весьма похожи на природные[1].

В качестве примера фрактальных структур мы рассмотрим множество или фрактал «Лист папоротника» – один из тех объектов, которые удобно строить при помощи вероятностных распределений.

Объект исследования – применение среды программирования Borland Delphi с целью изучения возможности отображения графической информации, построения фракталов.

Предмет исследования – среда Borland Delphi и ее графические средства для построения фрактальных множеств.

Цель работы – написать программу на Borland Delphi для построения изображения листа папоротника при помощи вероятностных распределений с использованием средств для отображения графической информации.

Для достижения данной цели в исследовании необходимо решить следующие задачи:

  •  осуществить постановку задачи;
  •  создать блок-схемы алгоритмов;
  •  осуществить описание объектов, свойств, методов;
  •  разработать формы и текст программы;
  •  привести результаты тестирования программного продукта.

Основой для выполнения работы стала справочная, научная и учебная литература.

Основным методом исследования был выбран общенаучный метод анализа.

Структурное изложение материала представлено в виде введения, основной части, заключения и списка использованных источников.

К работе прилагается электронный носитель информации.


  1.  ТЕОРЕТИЧЕСКАЯ ЧАСТЬ

1.1 Постановка задачи

Задачей курсовой работы является: построение фрактала «Лист папоротника».

Для достижения данной цели  необходимо составить приложение в среде Delphi. Приложение должно строить изображение фрактала «лист папоротника» с использованием графических средств среды Delphi при помощью метода многократных итераций (повторений).

1.2. Математическая модель фрактала "Лист папоротника"

Для построения фрактала используется подход, называемый методом итерируемых функций или IFS-методом (аббревиатура IFS происходит от английских слов iterated function system). IFS-метод основан на аффинных (от лат. affinis - родственный) преобразованиях координат точек по формулам:

X=ax+by+e,                                                                               (1.1)

где a,b,e–заданные коэффициенты

 x,y–текущие координаты

X–вновь вычисленная координата

Y=cx+dy+f,                                                                               (1.2)

где c,d,f– заданные коэффициенты

x,y – текущие координаты

Y– вновь вычисленная координата[2].

Основная идея этого метода заключается в том, чтобы, зафиксировав какую-либо начальную точку, далее циклически совершать афинное преобразование системы координат, в которой точка строится .То есть, если на определённом шаге цикла имеется точка А с координатами (х,y), то при следующей итерации цикла изображается точка В, чьи координаты имеют вид (ax+by+e, cx+dy+f). Таким образом, наблюдается явное выражение "новой" системы координат (точки В) через "старую" (точку А).

В свою очередь коэффициенты преобразования систем координат выбираются в зависимости от попадания некоторой случайной величины в соответствующий диапазон значений[3].

  1.   Алгоритм решения задачи
  2.  Для решения поставленной задачи нужно создать процедуру, вызов которой реализует создание фрактала.

А) Константа iterations отвечает за количество итераций (повторений) случайного рисования точки как мельчайшей составляющей изображения листа папоротника. Остальные переменные отвечают за размеры и координаты изображения.

Б) В теле процедуры создадим систему, которая задаст масштаб и координаты фрактала. Зададим исходные данные для итерируемой точки.

В) При помощи цикла for реализуем выполнение итераций.

Г) В теле процедуры используем случайное преобразование координаты точки. Выберем диапазоны для случайной величины (от 0 до 0.85 - соответствует преобразованию множества точек, отвечающих за "густоту" и "высоту" листа папоротника, от 0.85 до 0.92 - рисует листики слева от стебля, от 0.92 до 0.99 - рисует листики справа от стебля, остальные диапазоны - изображение стебля). Координаты точки в разных диапазонах преобразуются по формулам: X=ax+by+e, Y=cx+dy+f . Логическое выполнение программы осуществляют операторы if и else.

  1.  Выведем результат на графический компонент Image.

  1.  Блок-схема алгоритма решения задачи


Да Нет

  

Да Нет

 

Да Нет

 

Рисунок 1.1 — блок-схема алгоритма построения фрактала

2 ПРАКТИЧЕСКАЯ ЧАСТЬ

2.1 Описание объектов, свойств, методов

Компоненты представляют собой элементы, из которых конструируется видимое изображение, создаваемое рабочей программой. Существуют компоненты, которые не создают видимое изображение, но которые, тем не менее, играют важную роль в тех или иных случаях. Компоненты располагаются на палитре компонентов, расположенной по-умолчанию в верхней части окна.

Компонент Button

Компонент Button представляет собой командную кнопку [4]. Свойства компонента приведены в таблице 2.1.

Таблица 2.1. Свойства компонента Button (командная кнопка)

Name

Имя компонента. Используется в программе для доступа к компоненту и его свойствам

Caption

Текст на кнопке

Left

Расстояние от левой границы кнопки до левой границы формы

Top

Расстояние от верхней границы кнопки до верхней границы формы

Height

Высота кнопки

Width

Ширина кнопки

Enabled

Признак доступности кнопки. Если значение свойства равно True, то кнопка доступна. Если значение свойства равно False, то кнопка не доступна, например, в результате щелчка на кнопке событие Click не возникает

Visible

Позволяет скрыть кнопку (False) или сделать ее видимой (True)

Hint

Подсказка — текст, который появляется рядом с указателем мыши при позиционировании указателя на командной кнопке

ShowHint

Разрешает (True) или запрещает (False) отображение подсказки при позиционировании указателя на кнопке

Компонент Image

Компонент представляет собой некоторую ограниченную поверхность с канвой, на которую можно заносить изображения. Компонент намного богаче по своим возможностям и удобнее, чем обычное рисование на канве[5].

Свойства компонента приведены в таблице 2.2.

Таблица 2.2 – Свойства компонента Image

 Picture

Изображение отображающееся в поле компонента

Width,      Height

Размеры компонента. Если эти размеры меньше размера иллюстрации, а значение свойств Strech, AutoSize и Proportional равны False, то отображается часть изображения.

 Proportional

позволяет автоматически масштабировать картинки без искажения. Для выполнения масштабирования, значение свойства AutoSize должно быть равным False

 Strech

позволяет автоматически масштабировать (сжимать или растягивать) изображение в  соответствии с размером компонента Image. Если размер компонента не пропорционален размеру изображения, то изображение будет искажено

 AutoSize

позволяет автоматически изменять размер компонента в соответствии с размером изображения

Center

позволяет определять расположение изображения в поле компонента Image по горизонтали, если ширина картинки меньше ширины компонента. Если свойства равно False, то изображение прижато к правой границе, если True то изображение располагается по центру

 Canvas

поверхность, позволяющая вывести графику

Transparent

указывает прозрачный цвет фона изображения

Свойство Canvas 

Canvas представляет из себя область компонента, на которой можно создавать, хранить и модифицировать графическое изображение[4].

Свойства класса TCanvas приведены в таблице 2.3.

Таблица 2.3 – Свойства класса TCanvas.

 Pen

Карандаш. Определяет цвет, стиль и толщинц линии, которую рисует, например метод Lineto

PenPos

  Положение(координаты) карандаша

Brush

  Кисть. Определяет цвет и стиль закраски области, например прямоугольника, который рисует метод Rectangle.

Font

  Шрифт. Определяет шрифт, который используется для вывода текста, например методом TextOut.

Таблица 2.4 – Meтоды класса TCanvas:

Lineto(x, y)

Рисует линию из текущей точки в точку с указанными координатами (перемещение указателя текущей точки в нужную обеспечивает метод Moveto). Цвет динии определяется свойством Pen.Color .

Rectangle(x1 ,y1 , x2, y2)

  Рисует прямоугольник. Параметры x1, y1указывают координаты верхней левой точки, аx2, y2 координаты нижней правой точки. Цвет границы прямоугольника определяет свойствоPen.Color , цвет закраски области ― свойствоBrush.Color .

RoundRect(x1, y1, x2, y2, x3, y3)

  Рисует прямоугольник со скругленными углами. Параметры x1, y1 указывают координаты верхней левой точки, x2, y2 координаты нижней правой точки, а x3, y3 радиус скругления. Цвет границы прямоугольника определяет свойство Pen.Color ,цветзакраски области ― свойство Brush.Color .

 Ellipse(x1, y1, x2, y2)

Рисует эллиспс(окружность). Параметры x1, y1указывают координаты верхней левой точки, аx2, y2 координаты нижней правой точки прямоугольника в который вписана окружность. Цвет границы прямоугольника определяет

свойство Pen.Color , цвет закраски области ―свойство Brush.Color .

Arc(x1, y1, x2, y2, x3, y3 ,x4, y4)

Рисует дугу. Параметры x1, y1, x2 и y2 задают эллипс, частью которого является дуга, параметры x3, y3, x4 и y4 ― начальную и конечную точку дуги. Цвет дуги определяет свойство Pen.Color.

Продолжение таблицы 2.4

Pie(x1 ,y1 ,x2 ,y2 ,x3 ,y3 ,x4 ,y4)

Рисует сектор. Параметры x1, y1, x2 и y2 задают эллипс, частью которого является сектор, параметры x3, y3, x4 и y4 ―границы сектора. Цвет границы сектора определяет свойствоPen.Color , цвет закраски сектора ― свойствоBrush.Color .

FrameRect(aRect)

Рисует контур прямоугольника. ПараметрaRect(тип TRect) определяет положение и размер прямоугольника. Цвет контура определяет свойство Brush.Color .

Polyline(points, n)

Рисует ломаную линию. Points ― массив типаTPoint. Каждый элемент массива представляет собой запись, поля x и y которые содержат координаты точки перегиба ломаной. n ―количество звеньев ломаной. МетодPolyline вычерчивает ломанную линию, последовательно соединяя прямые точки, координаты которых находятся в массиве: перевую со второй, вторую с третьей, третью с четвертой и т.д.

Компонент Label

Данный компонент предназначен для отображения текстовой информации. Задать текст, отображаемый в поле компонента можно как во время разработки формы, так и во время работы программы, присвоив значение свойству Text[6].

Свойства компонента приведены в таблице 2.4.

Таблица 2.5 – Свойства компонента Label

Name

Имя компонента. Используется в программе для доступа к компоненту и его свойствам

Text

содержит отображаемый текст

Location

Положение компонента на поверхности формы

Size

Размер компонента (поля отображения текста)

Font

Шрифт, используемый для отображения текста

ForeColor

Цвет текста, отображаемого в поле компонента

BackColor

Цвет закраски области вывода текста

Продолжение таблицы 2.5

TextAlign

Способ выравнивания (расположения) текста в поле компонента. На практике используют выравнивание по левой и верхней границам (TopLeft), по середине (TopCentre) и по центру (MiddleCenter)

BorderStyle

Вид рамки (границы) компонента. По умолчанию вокруг поля Label отсутствует (значение свойства равно None). Граница компонента может быть обычной (Fixed3D) или тонкой (FixedSingle)

Таблица 2.6Свойства компонента RadioGroup

Caption

Надпись на кнопке

Columns

Определяет количество столбцов-кнопок

Items

Список радиокнопок группы

Itemlndex

Указывает, какая из радиокнопок выбрана в данный момент

Align

Способ выравнивания в пределах содержащего компонента

Name

Имя компонента

Height

Высота поля

Width

Ширина поля

Top

Расстояние от верхней границы поля до верхней границы формы

Left

Расстояние от левой границы поля до левой границы формы

ParentFont

Признак наследования свойств шрифта родительской формы

Font

Шрифт, используемый для отображения вводимого текста

Продолжение таблицы 2.6

Visible

Видимость компонента

Enabled

Доступность элемента управления

Color

Цвет шрифта

Size

Размер шрифта в пунктах

2.2 Формы и основные модули текста программы в среде Delphi

При решении поставленной задачи будут использованы следующие объекты: 

Рисунок 2.1 – объекты главной формы

- Button – командная кнопка;

- Image – компонента для вывода графической информации;

- RadioGroup – переключатель

Рисунок 2.2 – объекты дополнительной формы

- Label - информационные метки;

Основная форма  приложения имеет вид :

Рисунок 2.3 – вид основной формы программы

Дополнительная форма  выглядит так:

Рисунок 2.4 – вид дополнительной формы программы

Основной модуль текста программы:

procedure gf;

 

const

iterations = 500000;  //Кол-во итераций

 

var

t, x, y: real;

p: real;       //Случайная величина

k: longint;

mid_x, mid_y, radius: integer;

 

begin

mid_x := form1.width div 2;

mid_y := form1.height -200 ;//Масштабирование и координирование изображения

radius := trunc(0.1 * mid_y);

randomize;

x := 1.0;

y := 0.0;

for k := 1 to iterations do

begin

p := random;

t := x;

if p <= 0.85 then  //Построение верхней части листа

  begin

x := 0.84 * x -0.045  * y;

y := 0.045  * t + 0.86   * y + 1.6;

end

else

if p <= 0.92 then  //Построение левого  листа

begin

x := 0.25   * x - 0.26 * y;

y := 0.23 * t + 0.25   * y + 1.6;

end  

else

if p <= 0.99 then  //Построение стебля

begin

x := -0.135   * x + 0.28 * y;

y := 0.26 * t + 0.245 * y + 0.44;

end

else

begin

x := 0.0;

y := 0.16 * y  ;

end;

  Form1.image1.Canvas.Pixels[mid_x+round(radius*x),mid_y-round(radius*y)+35]:=col;//Вывод изображения

end;  

end;

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

Кратко о программе:

  •  Код главной формы находится в Unit1.pas (Приложение А)
  •  Кнопка «Очистить форму» становится доступной только после нажатия на кнопку «Изобразить фрактал».
  •  Изображение фрактала «Лист папоротника» получается при нажатии кнопки «Изобразить фрактал». При этом данная кнопка становится не активной, т. к. в повторных итерациях нет необходимости. Кнопка «Очистить форму» становится доступной.
  •  Канва компонента Image очищается нажатием на кнопку «Очистить форму».
  •  Компонент RadioGroup позволяет выбрать цвет изображения листа папоротника.
  •  При нажатии кнопки «Об авторе» главная форма становится невидимой, а дополнительная, содержащая информацию об создателе приложения появляется на экране.
  •  Код второй формы находится в Unit2.pas (Приложение Б)
  •  Кнопка «Вернуться назад» возвращает пользователя на исходную форму.
  •   Закрыть приложение можно, нажав на кнопку «Закрыть», стандартно располагающуюся в верхнем правом углу программы.

Для открытия программы нужно запустить файл Project1.exe.

Программа выглядит так:

Рисунок 2.5 – визуальное представление программы

1.Для получения изображения листа папоротника нужно нажать кнопку «Изобразить фрактал».

Рисунок 2.6 –результат нажатия кнопки «Изобразить фрактал»

2.Программа предоставляет возможность очистки окна с изображением, что можно сделать, нажав  на кнопку «Очистить форму».

Рисунок 2.7 – при очистке формы

3.Так же можно узнать информацию об авторе данного приложения, нажав на кнопку «Об авторе».

Рисунок 2.8 – информация о создателе приложения

4.При нажатии кнопки «Вернуться назад» пользователь переместится на главную форму.

Рисунок 2.9 – Вернуться назад

5. пользователь в праве выбрать цвет «листа папоротника».

Рисунок 2.10 – Выбор цвета

6.Закрытие программы осуществляется нажатием на кнопку «Закрыть», стандартно располагающуюся в верхнем правом углу программы.

2.4 Анализ результатов тестирования программы

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

При запуске приложения все кнопки, вкладки, команды меню работают правильно.


ЗАКЛЮЧЕНИЕ

Для выполнения выполнения задания, необходимо было реализовать алгоритм построения фрактала «Лист папоротника» в среде Delphi. В ходе работы были созданы формы на которых размещены компоненты,  которые необходимы для решения поставленной задачи. Во время разработки программы были углублены и закреплены знания по алгоритмизации, программированию и разработке графических программ в интегрированной визуальной среде программирования Delphi. Также была изучена  и проанализирована дополнительная литература, содержащая информацию о среде разработки Delphi, математических множествах и фракталах. В результате была разработана программа которая способна построить фрактал «Лист папоротника».

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

В дополнение хочется отметить области применения фракталов в компьютерных технологиях, помимо простого построения красивых изображений на экране компьютера. Фракталы в компьютерных технологиях применяются в следующих областях:

1. Сжатие изображений и информации

2. Сокрытие информации на изображении, в звуке

3. Шифрование данных с помощью фрактальных алгоритмов

4. Создание фрактальной музыки

5. Моделирование систем[7].

Данное приложение можно использовать для ознакомления с графическими средствами среды программирования Borland Delphi, а также для приобретения представлений о практическом применении фрактальных множеств.

Приложение можно доработать и использовать для создания более сложных фракталов.

Таким образом, поставленные цели были достигнуты, задачи работы были выполнены.


СПИСОК ИСПОЛЬЗОВАНЫХ ИСТОЧНИКОВ

  1.  http://ru.wikipedia.org/wiki/Фрактал
  2.  http://www.kv.by/index2002491201.htm
  3.  http://www.opita.net/node/597
  4.  Бобровский С.И. Delphi 7. Учебный курс / С.И. Бобровский. – Санкт-Петербург: Питер, 2004. – 736 с.
  5.  Бугров Я.С. Высшая математика / Я.С. Бугров, С.М. Никольский. –   Москва: Дрофа, 2004. – 288 с.
  6.  Культин Н. Б. Основы программирования в Delphi 8 для Microsoft.NET

Framework. Самоучитель.– Санкт-Петербург, 2004. – 400с.

  1.  Кроновер Р.М.  Фракталы и хаос в динамических системах. Основы теории./ Р.М  Кроновер. – Москва: Постмаркет, 2000. – 352 с.


Приложение А

Листинг программы

unit Unit1;

interface

uses

 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

 Dialogs, StdCtrls, ExtCtrls, XPMan;

type

 TForm1 = class(TForm)

   Button1: TButton;

   Button2: TButton;

   image1: TImage;

   xpmanifest1: TXPManifest;

   radiogroup1: TRadioGroup;

   Button3: TButton;

   procedure Button1Click(Sender: TObject);

   procedure Button2Click(Sender: TObject);

   procedure Button3Click(Sender: TObject);

   procedure FormCreate(Sender: TObject);

 private

   { Private declarations }

 public

   { Public declarations }

 end;

var

 Form1: TForm1;

implementation

{$R *.dfm}

uses unit2;

procedure gf;

 

const

iterations = 500000;  //Кол-во итераций

 

var

t, x, y: real;

p: real;       //Случайная величина

k: longint;

mid_x, mid_y, radius: integer;

 

begin

mid_x := form1.width div 2;

mid_y := form1.height -200 ;//Масштабирование и координирование изображения

radius := trunc(0.1 * mid_y);

randomize;

x := 1.0;

y := 0.0;

for k := 1 to iterations do

begin

p := random;

t := x;

if p <= 0.85 then  //Построение верхней части листа

  begin

x := 0.84 * x -0.045  * y;

y := 0.045  * t + 0.86   * y + 1.6;

end

else

if p <= 0.92 then  //Построение левого  листа

begin

x := 0.25   * x - 0.26 * y;

y := 0.23 * t + 0.25   * y + 1.6;

end  

else

if p <= 0.99 then  //Построение стебля

begin

x := -0.135   * x + 0.28 * y;

y := 0.26 * t + 0.245 * y + 0.44;

end

else

begin

x := 0.0;

y := 0.16 * y  ;

end;

  Form1.image1.Canvas.Pixels[mid_x+round(radius*x), mid_y round(radius*y)+35]:=col;

end;  //Вывод изображения

end;

procedure TForm1.Button1Click(Sender: TObject);  //Инициализация построения фрактала

begin

case radiogroup1.ItemIndex of

0: col:=clGreen;

1: col:=clRed;

2: col:=clBlue;

3: col:=clOlive;

4: col:=clMaroon;

5: col:=clPurple;

6: col:=clLime;

7: col:=clYellow;

end;

gf;

button1.enabled:=false;

Button3.Enabled:=True;

end;

procedure TForm1.Button2Click(Sender: TObject);  //Кнопка «Об авторе»

begin

form1.Visible:=false;

form2.show;

end;

procedure TForm1.Button3Click(Sender: TObject);  //Кнопка «Очистить форму»

begin

 image1.Canvas.Rectangle(0,0,ClientHeight,ClientWidth);

 Button3.Enabled:=False;

 Button1.Enabled:=True;

end;

procedure TForm1.FormCreate(Sender: TObject);  //Исходные параметры формы

begin

Button3.Enabled:=False;

image1.Canvas.Rectangle(0,0,ClientHeight,ClientWidth);

Form1.BorderIcons := [biSystemMenu,biMinimize];

end;

procedure TForm1.FormActivate(Sender: TObject);

begin

radiogroup1.ItemIndex:=0;

end;

end.


Приложение Б

Вторая форма

unit Unit2;

interface

uses

 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

 Dialogs, StdCtrls, jpeg, ExtCtrls;

type

 TForm2 = class(TForm)

   Label1: TLabel;

   Button1: TButton;

   label2: TLabel;

   procedure Button1Click(Sender: TObject);

 

 private

   { Private declarations }

 public

   { Public declarations }

 end;

var

 Form2: TForm2;

implementation

{$R *.dfm}

uses unit1;

procedure TForm2.Button1Click(Sender: TObject);  //Кнопка «Вернуться назад»

begin

form2.Visible:=false;

form1.show;  

end;

end.


Начало процедуры
gf, выполняющей создание фрактала

Ввод необходимых

Констант и переменных:

Iterations,t,x,y,p,k,

mid_x,mid_y,radius.

     Ввод начальных данных:p := random;

t := x;

for k := 1 to iterations do

if p <= 0.85

x := 0.84 * x -0.045  * y;

y := 0.045  * t + 0.86   * y + 1.6;

if p <= 0.92

x := 0.25   * x - 0.26 * y;

y := 0.23 * t + 0.25   * y + 1.6;

if p <= 0.99

x := 0.0;

y := 0.16 * y

x := -0.135   * x + 0.28 * y;

y := 0.26 * t + 0.245 * y + 0.44;

В

Б

А

А

Б

В

Вывод результата работы процедуры: Form1.image1.Canvas.

Pixels[mid_x+round

(radius*x), mid_y-round(radius*y)+35]:=

clGreen

Окончание процедуры


 

А также другие работы, которые могут Вас заинтересовать

52124. Розвязування систем рівнянь методом заміни змінної 4.01 MB
  Мета: освітня: формувати поняття однорідного многочлена симетричного многочлена; формувати умінь і навичок розв’язування систем рівнянь методом заміни змінної та вироблення вмінь і навичок застосовувати цей спосіб під час розв’язування систем рівнянь; розвиваюча: формувати вміння знаходити зв’язок з раніше вивченим: переносити набуті знання в нові ситуації; стимулювати учнів до висловлювань без побоювань помилитися; заохочувати знаходити свій спосіб фіксації пояснення нового матеріалу; виховна: виховувати культуру математичних міркувань;...
52125. Решение нестандартных задач в курсе алгебры 8-9 класса 1.46 MB
  Доказать что значение выражения является натуральным числом. А При каком положительном значении параметра сумма квадратов корней уравнения равна 16 Ответ: Б При каком отрицательном значении параметра сумма квадратов корней уравнения Ответ: Доказать что значение выражения натуральное число. Доказать что значение выражения чётное число отрицательное. Построить график функции – const Построить график функции: а б в Доказать что график функции это две...
52126. Методи розвязування показникових рівнянь 1.22 MB
  Мета: Систематизувати й узагальнити знання уміння та навички учнів із теми формувати вміння учнів розв’язувати показникові рівняння різними способами: зведення до однієї основи до спільного...
52127. Розвязування вправ з використанням формул скороченого множення 150 KB
  Розв’язування вправ з використанням формул скороченого множення. – навчальна формувати удосконалити та поглибити знання та вміння учнів використовувати формули скороченого множення: при розв’язуванні вправ формувати навички їх творчого застосування при розв’язуванні завдань високого рівня складності; розвивальна розвивати логічне мислення математичну мову вміння чітко висловлювати думки узагальнювати активність; виховна інтерес до математики. Розв’язування вправ на застосування формул скороченого множення: для виконання...
52128. Действия с многочленами 51 KB
  Развивающие: развитие логического мышления, активности, познавательного интереса учащихся, умения работать самостоятельно, четко высказывать свои мысли. Развитие коммукативной компетентности, компетентности продуктивной творческой деятельности.
52129. Винесення спільного множника за дужки 87 KB
  Мета: навчити учнів застосовувати даний спосіб під час розвязування задач, розвивати внутрішню мотивацію учнів до теми, що вивчається; навчити учнів прогнозувати очікувані результати уроку; відтворити необхідні знання та вміння для досягнення результатів уроку.
52131. Степінь з цілим показником 544 KB
  8 клас алгебра Тема уроку: Степінь з цілим показником. Мета уроку: Ввести поняття степеня з цілим показником. Тип уроку: урок вивчення нового матеріалу Обладнання: дидактичний матеріал таблиця підручники збірник завдань А. ХІД УРОКУ: 1.
52132. Збірник завдань для тематичної атестації з алгебри для класів з поглибленим вивченням математики 11.53 MB
  Збірник є дидактичним матеріалом з алгебри для 8 класу з поглибленим вивченням математики. Він містить 10 контрольних робіт в двох варіантах, за структурою наближених до атестаційної роботи в 9 класі.