Френсис Хилл

Рис. 2.28. Генератор последовательности итерируемых функций для точек Отступление. Взгляд на ковер Серпинского как как IFS

В терминологии IFS k-я точка ковра Серпинского, рк, получается из предыдущей точки pkl по следующей формуле:

p4-((pt.,+ r[random(3)])/2, причем ясно, что составляющие х и у следует формировать отдельно. Тогда итерируемая функция имеет вид:

/(.)-((.) + r[random(3)])/2.

Проект 2. Пряничный человечек Показанный на рис. 2.29 «пряничный человечек» («gingerbread man») создан на основе другой IFS и может быть нарисован в виде группы точек. Эта фигура стала известным существом в теории хаоса

2.6. Тематические задания

[Peitgen, 88, Gleick, 87, Schroeder, 91], поскольку она является формой «странного аттрактора» («strange attractor»): последовательные точки «притягиваются» («аге attracted*) в область, напоминающую пряничного человечка с любопытными шестиугольными отверстиями.

Рис. 2.29. Типичный пряничный человечек (gingerbread man)

В процессе, генерирующем пряничного человечка, нет никакой хаотичности: каждая последующая точка q получается из предыдущей точки р согласно следующим двум правилам:

qjx = М(1 + 21) -р.у + \рлс -LM\;

q.ypjc. (2-7)

Заметим, что константы М и L тщательно подобраны для масштабирования и позиционирования пряничного человечка на экране дисплея. (Значения М - 40 и L - 3 являются хорошим выбором для экрана 640 на 480 пикселов.)

Напишите программу, которая позволяет пользователю выбрать с помощью мыши начальную точку итерации, а затем рисует точки для пряничного человечка. (Если мыши нет, то одной из неплохих начальных точек будет (115,121).) Зафиксируйте в программе подходящие значения Ми I, но поэкспериментируйте также и с другими значениями.

Вы увидите, что для заданной начальной точки появляется только определенное число точек, после чего узор повторяется (то есть картина перестает меняться). Различные стартовые точки приводят к различным узорам. Модернизируйте свою программу так, чтобы можно было добавлять к картинке точки, вводя мышью дополнительные стартовые точки.


⇐ Предыдущая| |Следующая ⇒