16308

Фрактальный папоротник и аффинные преобразования

Домашняя работа

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

Фрактальный папоротник и аффинные преобразования Около четырехсот миллионов лет назад из теплого девонского моря населенного диковинными рыбами на еще безжизненную сушу начали наползать первые растения. Позднее на первобытной Земле многие миллионы лет шумели ка

Русский

2013-06-20

43.5 KB

5 чел.

Фрактальный папоротник и аффинные преобразования

Около четырехсот миллионов лет назад из теплого девонского моря, населенного диковинными рыбами, на еще безжизненную сушу начали наползать первые растения. Позднее на первобытной Земле многие миллионы лет шумели карбонские леса, состоящие преимущественно из гигантских древовидных папоротников. Живописные видения того далекого времени в стиле палео-арт можно отыскать в закоулках интернета. Благодаря своему невероятно древнему происхождению папоротники представляют собой живую иллюстрацию самых фундаментальных природных формообразовательных алгоритмов. Вместе с тем это и классический пример фрактальной геометрической структуры. В одной из моих прошлых статей я рассказывал об L-формализме, который позволяет строить подобные фигуры. Однако, используя рекурсивные замены, мы всегда строим лишь предфрактал какого-либо заданного порядка. Для построения отпечатка истинного фрактала используется другой подход, называемый методом итерируемых функций или IFS-методом (аббревиатура IFS происходит от английских слов iterated function system). IFS-метод основан на аффинных (от лат. affinis - родственный) преобразованиях координат точек по формулам:

X=ax+by+e

Y=cx+dy+f,

где a, b, c, d, e, f - заданные коэффициенты, x и y - текущие координаты, а X и Y - вновь вычисленные значения координат. В начале процесса задается исходная позиция. Каждая последующая точка рассчитывается на основе предыдущей по указанным выше формулам. Для построения изображения листа папоротника одновременно используются четыре различных набора коэффициентов, каждый из которых выбирается на очередном шаге с определенной вероятностью при помощи генератора случайных чисел. Описанный алгоритм можно реализовать в виде циклически повторяющейся конструкции Case.

Private Sub Form_Click()

Randomize Timer

x = 0

y = 0

For i = 1 To 70000

 r = Rnd

 Select Case r

  Case 0 To 0.01

   a = 0: b = 0: c = 0: d = 0.16: e = 0: f = 0

  Case 0.01 To 0.8

   a = 0.85: b = 0.04: c = -0.04: d = 0.85: e = 0: f = 1.6

  Case 0.8 To 0.9

   a = 0.2: b = -0.26: c = 0.23: d = 0.22: e = 0: f = 1.6

  Case 0.9 To 1

   a = -0.15: b = 0.28: c = 0.26: d = 0.24: e = 0: f = 0.44

 End Select

 X1 = (a * x) + (b * y) + e

 Y1 = (c * x) + (d * y) + f

 x = X1

 y = Y1

 PSet (x + 10, 11 - y), RGB(0, 100, 0)

 Next i

End Sub

Метод IFS представляет собой хорошую иллюстрацию принципа системности. Изменение одного из коэффициентов влияет, так или иначе, на всю структуру в целом. В этом смысле влияние коэффициентов в аффинных преобразованиях на форму итогового листа можно сравнить с влиянием генов на фенотипические структуры организма. Все влияет на все. Например, если приравнять к нулю коэффициент d в первом преобразовании, то во всей итоговой структуре исчезнут стебельки. Если начать изменять симметричные значения коэффициентов b и c во втором преобразовании, то все элементы структуры листа в ответ будут скручиваться либо распрямляться (в зависимости от того, будем ли мы увеличивать или уменьшать их абсолютные величины).

При помощи метода IFS можно, разумеется, строить не только изображение листа папоротника, но и другие фрактальные структуры, такие, например, как треугольник Серпинского или снежинка фон Кох. Нужно лишь подобрать соответствующие коэффициенты. Например, треугольник Серпинского появится на экране в результате реализации следующего программного кода:

Private Sub Form_Click()

x = 0

y = 0

For i = 1 To 40000

 r = Rnd

 Select Case r

  Case Is < (1 / 3)

   x = 0.5 * x

   y = 0.5 * y

  Case (1 / 3) To (2 / 3)

   x = 0.5 * x

   y = 0.5 * y + 3000

  Case Is > (2 / 3)

   x = 0.5 * x + 1500

   y = 0.5 * y + 1500

 End Select

 PSet (y + 1000, 5000 - x), RGB(0, 0, 0)

 Next i

End Sub

При использовании формул IFS мы получаем отпечаток истинного фрактала, ограниченного лишь разрешающей способностью устройства отображения. В приведенных выше программных фрагментах используется генератор случайных чисел. Каждый из возможных наборов коэффициентов выбирается случайно с какой-то заданной вероятностью. При этом создается впечатление, что точки одна за другой налипают на висящий в пространстве призрачный фрактальный аттрактор, постепенно делая его видимым. Возможно использование и детерминированных алгоритмов построения фрактальных объектов методом IFS. Заинтересованный читатель найдет исчерпывающую информацию на этот счет в добротном учебнике: Р.М. Кроновер "Фракталы и хаос в динамических системах. Основы теории". Москва: Постмаркет, 2000. - 352 с. Появление учебников по фрактальной геометрии - знаковое событие. Недалеко то время, когда основы фрактальной геометрии войдут обязательной составной частью даже в школьную программу. Это не просто новый модный раздел геометрии. Фрактальная геометрия знаменует собой качественно новый этап ее развития.

В заключении процитирую мысль одного неизвестного сетевого автора, подписавшегося как Hard Wisdom. Сам он отнесся к своей идее как к малозначительному курьезу или приколу, но мне думается, что это нечто большее. Hard Wisdom между прочим высказал сколь элементарную, столь и глубокую мысль о том, что числа - это также не что иное, как фракталы. Он пишет: "Давайте взглянем на обычные целые числа, записанные в позиционной системе счисления. Очевидно, что любая часть такого числа - тоже число! Доказательство данного факта вряд ли необходимо.;-) Давайте отобразим графически число, взятое в двоичной системе счисления (исключительно ради наглядности, для произвольной системы счисления надо лишь использовать большее количество цветов, чем 2 :-). Цифру 1 будем изображать закрашенной точкой, а цифру 0 - пробелом. Итак:

На шкале N отложены числа, на шкале R - цифры в позиции числа. Мы можем заметить интересную симметрию (связанную с основанием системы счисления, в частности, причем симметрию рекурсивную)"


 

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

42899. УПРАВЛЕНИЕ ПЕРСОНАЛОМ 46.06 KB
  Курсовая работа является самостоятельной научной работой студента и должна отражать приобретенные им знания и результаты исследования по общим и специальным разделам управления персоналом в рамках выбранной темы. Тематика курсового проектирования определяется программой дисциплины «Управление персоналом».
42900. Графіки в економічному моделюванні 140.48 KB
  В умовах ринкової системи управління виробничою і збутовою діяльністю підприємств і фірм в основі прийняття господарських рішень лежить ринкова інформація, а обгрунтованість рішень перевіряється ринком у ході реалізації товарів і послуг. При такому підході початковим пунктом усього циклу підприємницької діяльності стає вивчення споживчого попиту. Розглянемо деякі питання моделювання попиту і споживання.
42901. Бухгалтерский учет расчетов с бюджетом и внебюджетными фондами в ООО «Золотой Флок» 12.09 MB
  Еще Ф. Аквинский, известный церковный деятель и философ XIII в. высказывался о проблемах установления и сбора налогов следующим образом: он определял налоги, как «дозволенную форму грабежа». Речь идет о том, что взимание налогов всегда ущемляет чьи-то интересы и в определенной степени отягощает социальное положение.
42902. Комплексный анализ проблем оплаты труда на предприятии питания и предложение направлений совершенствования оплаты труда на предприятии 67.08 KB
  Формы и системы оплаты труда. Фонд оплаты труда и его структура. Направления совершенствования системы оплаты труда на предприятии. Администрация предприятий питания самостоятельно выбирает и применяет различные системы оплаты труда работников.
42903. Розробка блоку зв’язку з електроавтоматикою верстата 16Б16. Пристрій управління шпінделем 875.86 KB
  Числове програмне керування (ЧПК) (англ. Computer numerical control) - комп'ютеризована система керування, яка зчитує командні інструкції спеціалізованої мови програмування (наприклад, G-код) і керує приводами метало-, дерево- чи пластмасообробних верстатів та верстатним оснащенням.
42904. Предпримемательство: эволюционный подход 33.65 MB
  Предпринимательство есть способ хозяйствования, который в результате многовековой эволюции утвердился в экономике всех развитых стран. Первоначально предпринимателями называли предприимчивых людей, действующих на рынке, или просто людей энергичных, азартных, склонных к рискованным операциям. В дальнейшем к предпринимательству стали относить любую деятельность, направленную на увеличение прибыли и не запрещённую законом. Однако возникновение предпринимательства как оформившегося устойчивого явления относят к XVII веку.
42905. Сестринский процесс при ожирении 186.5 KB
  Эта проблема касается всех слоев населения независимо от социальной и профессиональной принадлежности, возраста, места проживания и пола. Так, в странах Западной Европы избыточную массу тела имеет от 10 до 20% мужчин и от 20 до 25% женщин. В некоторых регионах Восточной Европы доля людей, страдающих ожирением, достигла 35%. В России в среднем 30% трудоспособного населения имеют ожирение и 25% - избыточную массу тела.
42906. Разработка программы для реализации модели боя типа «Б» с учетом корректировки огня 66.8 KB
  Исходные данные В качестве исходных данных задачи принимаются следующие величины: N1 численность наших войск на момент начала бояN2 численность войск противника на момент начала бояn1 численность при которой наши подразделения выходят из бояn2 численность при которой подразделения противника выходят из бояλ1 скорострельность наших подразделенийλ2 скорострельность подразделений противникаP1 вероятность поражения БЕ противника при попаданииP2 вероятность поражения нашей БЕ при попаданииK1 коэффициент корректировки огня наших...
42907. Розробка алгоритмів покриття та сортування 733.57 KB
  Алгоритм - це точний припис, що визначає обчислювальний процес, що веде від варійованих вихідних даних до шуканого результату. Саме слово «алгоритм» походить від латинської форми написання імені великого математика IX століття Аль Хорезмі (Мухаммеда ібн Муса аль Horesmi)