Редактирование: Фрактал
Внимание! Вы не авторизовались на сайте. Ваш IP-адрес будет публично видимым, если вы будете вносить любые правки. Если вы войдёте или создадите учётную запись, правки вместо этого будут связаны с вашим именем пользователя, а также у вас появятся другие преимущества.
Правка может быть отменена. Пожалуйста, просмотрите сравнение версий, чтобы убедиться, что это именно те изменения, которые вас интересуют, и нажмите «Записать страницу», чтобы изменения вступили в силу.
Текущая версия | Ваш текст | ||
Строка 1: | Строка 1: | ||
− | Программа позволяет строить фрактальные и простые структуры при заданных начальных условиях | + | Программа позволяет строить фрактальные и простые структуры при заданных начальных условиях. |
==Начальные условия и принцип работы== | ==Начальные условия и принцип работы== | ||
В системе координат Oxy дан единичный квадрат, который отображается на экран в масштабе 1000:1 | В системе координат Oxy дан единичный квадрат, который отображается на экран в масштабе 1000:1 | ||
<br>{{#widget:Iframe |url = http://tm.spbstu.ru/htmlets/js2020/Borisenkov/fotos/coordinat2.jpg| width= 382 | height = 362}} | <br>{{#widget:Iframe |url = http://tm.spbstu.ru/htmlets/js2020/Borisenkov/fotos/coordinat2.jpg| width= 382 | height = 362}} | ||
− | <br>Программа получает | + | <br>Пользователю предлагается задать коэффициенты рекурсивной функции вычисления новых координат и координаты "x" и "y" начальной точки, количество итераций, которое произведет программа и способ вычисления новых точек. Начальная точка задается кликом левой кнопки мыши по холсту. |
+ | Программа получает на вход "x"(0<x<1) и "y"(0<y<1) и строит N точек, координаты которых вычисляются по формулам: | ||
<br> | <br> | ||
\begin{equation} | \begin{equation} | ||
\begin{cases} | \begin{cases} | ||
− | x_{k+1} = F(a_{11}x_{k} + a_{12}y_{k})\\ | + | x_{k+1} = F(a_{11}*x_{k} + a_{12}*y_{k})\\ |
− | y_{k+1} = F(a_{21}x_{k+1} + a_{22}y_{k}) | + | y_{k+1} = F(a_{21}*x_{k+1} + a_{22}*y_{k}) |
\end{cases} | \end{cases} | ||
\end{equation} | \end{equation} | ||
− | < | + | <br>где <math>F</math> - функция<i> [https://ru.wikipedia.org/wiki/Дробная_часть дробной части]</i>. Сразу можно сказать, что все точки, вычисленные по этим формулам, попадут в единичный квадрат (вследствие использования функции дробной части). |
− | Сразу можно сказать, что все точки, вычисленные по этим формулам, попадут в единичный квадрат (вследствие использования функции дробной части). | + | |
==Направление исследований== | ==Направление исследований== | ||
− | + | Используя функцию <math>F</math>, программа строит <i><b>регулярные</b></i> и <i><b>нерегулярные</b></i> области: | |
− | + | <br>1. <i><b>Регулярной</b></i> будем считать область, которая состоит из малого количества отдельных элементов (например: два больших эллипса). | |
− | + | <br>2. <i><b>Нерегулярной</b></i> будем считать область, которая состоит из большого количества малых элементов (например: множество малых эллипсов в промежутках между регулярными областями). | |
− | + | <br>Ниже изображен процесс вычисления точек и их отображения в случае нерегулярной и регулярной области при заданных коэффициентах (эксперимент 1): | |
− | |||
− | |||
− | |||
− | |||
− | <br>1. <i><b>Регулярной</b></i> будем | ||
− | <br>2. <i><b>Нерегулярной</b></i> будем | ||
− | <br>Ниже изображен процесс вычисления точек и их отображения в случае нерегулярной и регулярной области при | ||
\begin{equation} a_{11} = 1, a_{12} = 1, a_{21} = -0.9, a_{22} = 1.\end{equation} | \begin{equation} a_{11} = 1, a_{12} = 1, a_{21} = -0.9, a_{22} = 1.\end{equation} | ||
− | |||
− | |||
<br>{{#widget:Iframe |url = http://tm.spbstu.ru/htmlets/js2020/Borisenkov/fotos/reg_obl-1.gif| width= 454 | height = 369}} | <br>{{#widget:Iframe |url = http://tm.spbstu.ru/htmlets/js2020/Borisenkov/fotos/reg_obl-1.gif| width= 454 | height = 369}} | ||
− | {{#widget:Iframe |url = http://tm.spbstu.ru/htmlets/js2020/Borisenkov/fotos/ | + | {{#widget:Iframe |url = http://tm.spbstu.ru/htmlets/js2020/Borisenkov/fotos/nereg_obl2.gif| width= 450 | height = 369}} |
− | <br>Результат: регулярная область фрактала. | + | <br>В данных примерах использовались начальные условия: <br>1. \begin{equation} x_{0} = 0.613, y_{0} = 0.582 \end{equation} Результат: регулярная область фрактала. |
− | <br>2. | + | <br>2. \begin{equation} x_{0} = 0.46, y_{0} = 0.63\end{equation} Результат: нерегулярная область фрактала. |
− | + | <br><i>Синим</i> цветом обозначены точки, вычисленные по рекуррентным формулам <u>без</u> использования функции <math>F</math>. | |
− | + | <br><i>Красным</i> цветом обозначены точки, вычисленные по рекуррентным формулам <u>с</u> использованием функции <math>F</math> (формулы даны выше). Данная на этой странице программа вычисляет и отображает лишь эти точки. | |
− | + | <br> Данные примеры призваны показать, что паттерн получаемого фрактала подобен кривой второго порядка, которую образуют точки, вычисленные по рекуррентным формулам без использования функции дробной части <math>F</math>. | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
==Пример работы программы== | ==Пример работы программы== | ||
Зададим такие же коэффициенты, как в примерах выше (эксперимент №1 в списке программы): | Зададим такие же коэффициенты, как в примерах выше (эксперимент №1 в списке программы): | ||
<br>\begin{equation} a_{11} = 1, a_{12} = 1, a_{21} = -0.9, a_{22} = 1.\end{equation} | <br>\begin{equation} a_{11} = 1, a_{12} = 1, a_{21} = -0.9, a_{22} = 1.\end{equation} | ||
− | <br>Получив несколько начальных точек, программа построит такую картину при данных коэффициентах: | + | <br>Получив несколько начальных точек, программа построит такую картину при данных коэффициентах (картина отзеркалена относительно оси Ox для одинаковой направленности осей): |
<br>{{#widget:Iframe |url = http://tm.spbstu.ru/htmlets/js2020/Borisenkov/fotos/Ellips2.jpg| width= 212 | height = 209}} | <br>{{#widget:Iframe |url = http://tm.spbstu.ru/htmlets/js2020/Borisenkov/fotos/Ellips2.jpg| width= 212 | height = 209}} | ||
− | <br> | + | <br>Другие примечательные наборы начальных условий можно посмотреть, выбрав номер эксперимента. |
− | == | + | ==Задание коэффициентов и начальных точек== |
− | + | Коэффициенты \begin{equation}a_{11},a_{12},a_{21},a_{22}\end{equation} задаются с помощью полей ввода: | |
− | |||
− | |||
<br>{{#widget:Iframe |url = http://tm.spbstu.ru/htmlets/js2020/Borisenkov/fotos/koeffs.png| width= 197 | height = 45}} | <br>{{#widget:Iframe |url = http://tm.spbstu.ru/htmlets/js2020/Borisenkov/fotos/koeffs.png| width= 197 | height = 45}} | ||
<br>Начальные точки задаются с помощью клика по холсту или с помощью полей ввода: | <br>Начальные точки задаются с помощью клика по холсту или с помощью полей ввода: | ||
− | <br>{{#widget:Iframe |url = http://tm.spbstu.ru/htmlets/js2020/Borisenkov/fotos/n. | + | <br>{{#widget:Iframe |url = http://tm.spbstu.ru/htmlets/js2020/Borisenkov/fotos/n.y.png| width= 721 | height = 25}} |
− | + | ||
− | |||
− | |||
− | |||
− | |||
− | |||
==Два режима работы программы== | ==Два режима работы программы== | ||
Данная программа предусматривает два режима работы: | Данная программа предусматривает два режима работы: | ||
<br>1) Режим задания начальных данных (стоит по умолчанию). Кликом мыши по холсту добавляем начальные данные. | <br>1) Режим задания начальных данных (стоит по умолчанию). Кликом мыши по холсту добавляем начальные данные. | ||
− | <br>2) Режим "ZOOM'а". Включается нажатием на соответствующий "checkbox" | + | <br>2) Режим "ZOOM'а". Включается нажатием на соответствующий "checkbox". Позволяет подробнее рассмотреть уже полученный рисунок. |
<br>Чтобы программа лучше прорисовала картину в режиме "ZOOM", необходимо задать большее количество точек в поле задания количества итераций, используя при этом кнопку "Обновить рисунок" | <br>Чтобы программа лучше прорисовала картину в режиме "ZOOM", необходимо задать большее количество точек в поле задания количества итераций, используя при этом кнопку "Обновить рисунок" | ||
− | {{#widget:Iframe |url = http://tm.spbstu.ru/htmlets/js2020/Borisenkov/ | + | {{#widget:Iframe |url = http://tm.spbstu.ru/htmlets/js2020/Borisenkov/Fractals25_kopia24_01_21.html | width =1500 | height = 1228| border = 0}} |
+ | ==Другая версия программы== | ||
+ | <br><b>http://tm.spbstu.ru/Фрактал(2-ая_версия_программы) | ||
==Код программы== | ==Код программы== | ||
<div class="mw-collapsible mw-collapsed"> | <div class="mw-collapsible mw-collapsed"> |