БЛОГФорумСсылки Написать письмоПочему Арбуз? Служебная UN ЕЖЕ-движение - международный союз интернет-деятелей

Фрактальные линии

Продолжим тему о фракталах, начатую в статье о Биоморфах.Некоторое время работа Пикоувера была связана с изучением новых подходов к определению смыслового содержания данных по их внешнему виду, и теперь мы можем обратиться ещё к одной графической забаве Пикоувера: фрактальному попкорну. Для тех, кто не знает: попкорн – это кукурузные хлопья, ну а что такое фрактальный – наверняка известно всем. Слово новое, красивое, уже есть фирмы с таким названием, (можно даже назвать породистого кота это будет не слабее чем Брэндон или Круз Кастильо). Тому, кто интересуется математикой, наверняка известен ковёр Серпинского. У мэтра популярной математики Мартина Гарднера найдём, что ещё в 1905 году на ежегодной математической олимпиаде в Венгрии предлагалась задача: «Квадрат разделён на 9 частей (как для игры крестики-нолики) и центральный квадрат удалён. Затем каждый из оставшихся 8 квадратов разделён на 9 частей, центральный квадрат удалён и процедура повторяется многократно. Найти предел, к которому стремится площадь полученной фигуры». Так вот – полученная фигура и есть ковёр Серпинского – квадрат настолько дырявый, что он уже ближе к линии. Известны множество объектов, застрявшие на полпути от одного измерения к другому, например, по аналогии с ковром можно представить куб Серпинского, трухлявый как губка, почти не обладающий объёмом. Для таких объектов создано направление математики – теория размерностей, занимающаяся серьёзными приложениями, например, вычисление длины береговой линии из-за изломанности формы не подающееся простым вычислениям. Нас же интересуют более красивые модели. Например, если у треугольника каждую сторону разделить на три части и на центральной построить правильный треугольник (получим шестиугольник – так называемая Звезда Давида – символ сионизма), потом с каждой стороной повторить эту операцию, то получим »снежинку». С каждым повторением операции снежинка будет всё пушистее, а суммарная длинна её отрезков (периметр) может быть сколь угодно длинной. Она может умещаться на почтовой марке и всё же быть длиннее, чем расстояние от Земли до самой далёкой звезды! Кривая-снежинка – один из красивейших представителей бесконечного множества кривых, названных паталогическими из-за своих парадоксальных свойств. При неограниченном увеличении числа звеньев длина ломанных в пределе стремится к бесконечности, хотя площадь заключённого внутри ломанных участка плоскости остаётся конечной. Ещё два маленьких замечания: к предельной кривой ни в одной точке нельзя провести касательную, а площадь снежинки стремится к 8/5 от площади исходного треугольника (проверьте!).  Надо ли ещё объяснять, что такое фрактал? Это многократное повторение вычислительного и графического процесса, приводящее к объектам с нецелой размерностью: уже не линия, но ещё не плоскость. Даже если это популярное объяснение совсем не передаёт сути процесса, это не помешает нам поиграть с фрактальными картинками на экране и полюбоваться на них.

image001.png (27086 bytes)

 

 

 

 

 

 

 

 

 

 

 

 

 

Изображение попкорна Пикоувера, как бы осязаемое, приведено на рисунке. На самом деле эти кружева были получены путём итерационного решения пары дифференциальгых уравнений в дискретной форме. Координата X точки решения вычисляется путём вычитания значения функции Y из координаты X решения, вычисленного на предыдущем шаге. Аналогичным образом координата Y точки решения вычисляется вычитанием значения функции X из координаты Y решения на предыдущем шаге. Такая система уравнений называется циклической. Приведём текст программы, выводящей на экран то, что мы называем фрактальным попкорном. PROGRAM POPCORN;

USES GRAPH,DOS,CRT;

VAR

   Q,W,X,Y,XX,YY: REAL;

   N : INTEGER;

   C: CHAR;

procedure GrInit;         

   var

     GraphDriver : Integer;     

     GraphMode   : Integer;     

     ErrorCode   : Integer;     

   begin

     GraphDriver:= Detect;    

     InitGraph(GraphDriver,GraphMode,'');  

     ErrorCode:=GraphResult;  

     if ErrorCode <> grOk then   

       begin

         Writeln('ОШИБКА ГРАФИКИ’,GraphErrorMsg(ErrorCode));

         Writeln('ПРОГРАММА ОСТАНОВЛЕНА.');

         Halt (1)

       end {if}

    end;

 

BEGIN

GRINIT;

SETFILLSTYLE(1,15) ;                          {3}

BAR(0,0,640,480) ;                               {4}

Q:=210 ;

REPEAT

 W:=180;

   REPEAT

    X:=Q ;

    Y:=480-W   ;                 {2}

    N:=1 ;        {3}

    REPEAT           {4}

       XX:=X+0.75*SIN(Y+SIN(3*Y)/COS(3*Y)) ;

       YY:=Y+0.75*SIN(X+SIN(3*X)/COS(3*X)) ;

       SETCOLOR(TRUNC(N/5000)+8) ;

       IF KEYPRESSED THEN EXIT ;

       LINE(TRUNC(X),TRUNC(Y),TRUNC(1*XX),TRUNC(1*YY)) ;

       X:=XX ; Y:=YY ;

       N:=N+1 ;

    UNTIL N>30000 ;                                 {5}

    W:=W+80 ;

   UNTIL W>300 ;

  Q:=Q+40 ;                                    {7}

 UNTIL Q>560 ;

 C:=READKEY;

 END.

Как видно из текста  программы, новые координаты получены прибавлением к старым шага  ( у нас он равен 0.75 – можно поменять), умноженного на синус, аргументами которого является сумма другой координаты с тангенсом утроенной другой координаты. Такая замысловатая зависимость заставляет линию на каждом шаге ломаться и поворачиваться. Тангенс, не включённый во встроенные функции Паскаля, представлен частным от деления синуса на косинус. Вертящаяся линия, сделав цикл из 30000 шагов и замазав некоторую область, начинает с новой начальной точки. В прилагаемом рисунке всё построено чёрным цветом, а в тексте программы видно, что цвет зависит от номера счётчика цикла и меняется через каждые 5000 шагов, фрактальная змейка получается раскрашенной.В отличие от Пикоувера, наша программа рисует не пикселями, а отрезками прямых линий. Предлагаем читателям попробовать поменять параметры программы и полюбоваться на замысловатые узоры. Графика Пикоувера уже не раз привлекала внимание общественности. Его работа обсуждалась не только в различных журналах, но и на телевидении; полученные им изображения демонстрировались даже на выставках в Швейцарии, Японии и в экспозиции музея вычислительной техники в Бостоне. Остаётся только выразить благодарность таким замечательным программистам-художникам, дающим всем нам лишний повод насладиться общением с компьютером.


Автор about me
Design by dady_MYKC
)c( 2000-2019
Kопирайта нет, копируйте на здоровье :)

100112 лет в Интернете


.