Фракталы Курликю
18 Ноя 2009
Фракталы Курликю

— Какие чудные цветы! — воскликнула Элли.
— Они хороши! — молвил Страшила. — Конечно,
будь у меня мозги, я восхищался бы цветами
больше, чем теперь.
А. Волков. Волшебник Изумрудного города

На потрясающие объекты с таким необычным названием обратили мое внимание знакомые — любители математических забав. Впервые увидел эти объекты на страничке www.mathworld.wolfram.com в знаменитой математической энциклопедии для непрофессионалов от Стивена Вольфрама. От всех известных ранее математических объектов фракталы Курликю отличаются не столько волнующей красотой, сколько до безобразия простым алгоритмом. К отрезку прикладывается такой же отрезок, но повернутый на некоторый угол, к этому новому отрезку примыкает следующий, тоже повернутый на тот же угол относительно предыдущего. И все! Никаких комплексных чисел, дифференциальных уравнений и всяких прочих интегралов-логарифмов, пугающих обывателя своими названиями.

Да, о названии. Всю жизнь (ну ладно, не всю, года два-три) был уверен, что фракталы эти назвали в честь их первооткрывателя, и писал название с заглавной буквы. Но оказалось, что curlicue означает просто «причудливый узор, завитушка». Так что писать название надо бы со строчной... но это будет не так романтично, как если бы в честь какого-нибудь древнего грека, или средневекового алхимика, или студента колледжа по фамилии Курликю... Так что исправлять не буду — пусть с заглавной.

Простота и красота задумки искушают сразу же запустить процесс в любом доступном языке программирования. Повозившись несколько минут с коэффициентами, вы будете сторицей вознаграждены появляющимися картинами и не заметите, как наступит утро. И станете еще не раз возвращаться к этой полюбившейся игрушке. Так непредсказуемы получающиеся елочки-спиральки-гроздья-вьюнки, что никак не отслеживаются вид картинки и ее зависимость от задаваемых параметров. Влияют шаг цикла и коэффициент, с которыми берутся счетчик цикла для построения и показатель степени этого счетчика цикла, причем все эти влияния взаимосвязаны. Идеальный объект, кстати, для приобщения к программированию подрастающего поколения.

Если самим лень возиться, взгляните на готовую галерею этих самых фракталов Курликю. Впору невольно задуматься в который раз: почему так красивы математические картинки? То ли мир устроен красиво, то ли математика сама по себе хороша?

Однако такие беседы можно вести бесконечно, рискуя вывести из терпения людей практичных. Поэтому приступим к делу. В Visual Basic’e создаем форму, «кидаем» на нее две кнопки — «Start» и «End» и назначаем им код.

Private Sub Command1_Click() Для кнопки Start
DrawWidth = 3 Толщина рисуемой линии
ScaleMode = 3 Режим попиксельного вывода
xmax = 500 Сдвиг для убегающего за кадр
ymax = 10 рисунка
r = 6 Длина одного участка
X1 = 0 Координаты начальной
Y1 = 100 точки
t = 3 Показатель степени
s = 0.0001 Коэффициент
For v = — 10000 To 10000 Step 2# Запускаем цикл
с заданным шагом
w = s * v ^ t Вычисляем текущий угол
для отрезка X2 = X1 + r * Cos(w) Координаты следующей
Y2 = Y1 + r * Sin(1 * w) точки
On Error Resume Next Выход в случае ошибки
red = Abs(v / 2) Mod 255 Задание цвета
green = Abs(255 — v / 3) Mod 255
blue = Abs(0 / 1) Mod 255
Col = RGB(red, green, blue)
Line (X1 + xmax, Y1 + ymax)-(X2 + xmax, Y2 + ymax), Col
Рисование
X1 = X2 : Y1 = Y2 Передача координат новой точки
Next v Конец цикла
End Sub

Private Sub Command2_Click() Действия для кнопки «End»
End
End Sub

Вот и вся программа. Алгоритм незатейлив и прост, его можно «запустить» в любом вашем привычном языке программирования от С++ до Delphi. Меняя переменные t, s, r и шаг цикла, вы каждый раз будете получать неожиданно-непредсказуемые, но неизменно красивые рисунки. Еще раз повторю — самое удивительное в этой игрушке, что результат опытов непредсказуем: поменяв угол на тысячные доли радиана, получаем узор, совершенно отличный от предыдущего... Стоит попробовать, — лучшей замены вашей скуке не найти.

Материалы по теме

Статьи по теме

3 комментария

no guest photo

Гость

12.02.2009 12:25:42 #

		
Интересно, а швейные машинки с функцией вышивания не на такой ли программе работают? ))) ответить

	

		
Раньше, когда я сидела на уроке и слушала учителя, у меня в руках всегда должна была быть ручка (и лист бумаги) и я, иной раз, не глядя рисовала похожие узоры. Ну, не всегда они были прекрасными, но очень похожи на ваши фракталы Курликю :-) ответить

	

Иван Князев

18.11.2009 16:05:31 #

		
Вот в тему! :) на информатике мы такое делали, играли с экспонентой и синусоидой! :) спасибо!!! ответить

	

			

Написать комментарий


Вместе с вашим комментарием мы подарим вам отличный персональный профиль на «Планете школ» со всеми остальными её сервисами.
Если вы уже зарегистрированы на нашем сайте, то просто авторизуйтесь.

		
Конкурс сочинений «Письмо Президенту» 2010: Изменение климата! Потепление! Экологическая катастрофа?!
Российская ассоциация содействия ООН и МГИМО объявляют о новом конкурсе сочинений для школьников «Письмо Президенту», темой которого в 2010 году станут вопросы глобальной экологической безопасности.
 
IV Всероссийская Интернет-олимпиада по нанотехнологиям
Целью Олимпиады является поиск и поощрение энтузиастов, желающих участвовать в развитии нанотехнологий в Российской Федерации. Попробовать в ней свои силы может каждый. Участие в Олимпиаде бесплатное.
Фонд имени В.И. Вернадского
Стипендия им. В.И. Вернадского учреждена с целью поощрения учебной и научной деятельности студентов очного обучения высших учебных заведений. Стипендии назначаются на конкурсной основе как студентам российских вузов, так и зарубежным студентам. Конкурс среди иностранных студентов проводит московская конкурсная комиссия.
 
Фонд некоммерческих программ "Династия"
Фонд "Династия" ставит своей задачей разработку и осуществление программ по поддержке российской фундаментальной науки, в частности, теоретической физики, адресованных людям разных поколений – школьникам, студентам, молодым ученым.