Город |
Блоги горожан |
--- |
Развлечениягорода |
Знакомства |
Биоморфы
В Томске
Киномания
Автоклуб
День в истории (НОВЫЙ!)
Город помогает
Интересно
Смешно
Красота (18+)
Анекдоты
Веселые картинки
Папарацци (18+)
Креатив и Реклама
Путешествия
М + Ж
Ищу хозяина!
Накипело!
Музыка
Спорт
Городскоп
Городская лирика
Форум
Конкурс красоты
Иногда я кажусь себе рыбаком. Компьютерные программы и идеи - это мои крючки, удилища и спиннинги. Компьютерные изображения - улов и деликатесные блюда.
Клиффорд А. Пикоувер.
В журнале «В мире науки» №9/1989г. рассказано о причудливых и красивых графических творениях К. Пикоувера, известного учёного из Исследовательского центра им. Томаса Уотсона фирмы IBM в Йорктаун-Хейтсе (штат Нью-Йорк). Помимо увлечения серьёзными исследованиями он коллекционирует развлекательные программы. Это его «рыболовные снасти». С их помощью на экране дисплея можно получать хаотичные и в то же время эстетически привлекательные формы. Глядя на восхитительные уловы Пикоувера, я не в состоянии противостоять соблазну - рассказать о программах, с которыми читатели смогут отправиться на «рыбалку» и ловить представителей трёх простых, но весьма забавных видов, а именно биоморфы, плитки Трюше и фрактальный попкорн. (Попкорн - потому что узор похож на кукурузные хлопья).
Что такое биоморфы? Это слово означает нечто похожее на живой организм. Биоморфы Пикоувера похожи на микробов, в связи с чем в журнале «Omni» Пикоувер был назван «Левенгуком ХХ века». (Антони ван Левенгук, живший в XVII в. нидерландский натуралист, первым соорудивший микроскоп и увидевший в капле воды живые существа). Каждый, кто смотрел в микроскоп, видел подобную картину: все живые и растительные ткани построены из клеток, имеющих оболочку, ядро, протоплазму и вакуоли - внутренние органы. Поэтому, увидев на экране дисплея результат работы программы, невольно вскрикнешь: «Да это же живая клетка!». Биоморфы Пикоувера населяют комплексную плоскость. Каждый биоморф строится путём многочисленных итераций, или последовательных вычислений определённой математической функции, путём повторяющихся математических операций. На каждом шаге итерационного процесса результат предыдущего шага принимается за исходное значение переменной. Рассмотрим, например, биоморф на картинке. ![]() Приведём основные правила арифметики комплексных чисел: (a + bi) + (c + di) = (a + c) + (b + d)i (a + bi) * (c + di) = (ac - bd) + (ad + bc)i (a + bi)2 = (a2 - b2) + 2abi (a + bi)3 = a(a2 - 3b2) + b(3a2 - b2)i Приводим текст программы на Turbo Pascal’е, рисующей на экране приведённый на картинке биоморф: PROGRAM BIO_3; USES CRT,GRAPH,DOS; LABEL 1; VAR RE,IM,RE1,IM1: REAL ; V,X,Y : INTEGER; C: STRING; 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; PROCEDURE QWA ; {1} BEGIN RE1:=RE*RE-IM*IM ; IM1:=2*RE*IM ; RE:=RE1 ; IM:=IM1 ; END ; PROCEDURE KUB ; {2} BEGIN RE1:=RE*(RE*RE-3*IM*IM) ; IM1:=IM*(3*RE*RE-IM*IM) ; RE:=RE1 ; IM:=IM1 ; END ; {+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++} BEGIN GRINIT; SETFILLSTYLE(1,WHITE) ; {3} BAR(0,0,640,480) ; {4} X:=-320 ; REPEAT Y:=-240 ; REPEAT V:=0 ; RE:=-1+0.008*X ; {5} IM:=0+0.008*Y ; {6} REPEAT KUB ; KUB ; {7} RE:=RE-0.9 ; {8} IM:=IM+0.18 ; {9} IF RE*RE > 5 THEN GOTO 1 ; {10} IF IM*IM > 6 THEN GOTO 1; {11} V:=V+1 ; UNTIL V > 10 ; {12} 1: IF ( ABS(RE) < 7 ) OR (ABS(IM) < 3 ) THEN PUTPIXEL((X+220),(Y+240),V) {14} ELSE PUTPIXEL((X+220),(Y+240),15) ; {15} Y:=Y+1 ; UNTIL Y > 241 ; X:=X+1 ; UNTIL X > 420 ; C:=READKEY ; CLOSEGRAPH; END. Предварительно описаны две процедуры: QWA- возведение комплексного числа в квадрат и KUB - возведение комплексного числа в куб. Процедура QWA в приведённой программе не применяется, но понадобится для других биоморфов, где используется чётная степень комплексных чисел. Комплексное число хранится двумя переменными: RE - действительная часть, IM - мнимая. Программа пробегает все точки экрана, для каждой точки определяется комплексное число с помощью подобранных коэффициентов в строках 5 и 6, меняя эти коэффициенты можно получать разные конфигурации. В строках 3 и 4 экран предварительно заливается белым фоном. В строке 7 число возводится в девятую степень, так как процедура KUB вызывается два раза подряд. В строках 8 и 9 к полученному числу добавляется постоянное комплексное число (действительная часть к действительной, мнимая к мнимой) также влияющее на вид биоморфа. Из итерационного цикла предусмотрены два «досрочных» выхода - по значению RE и IM в строках 10 и 11, причём эти значения влияют на вид и цвет внутренней полости биоморфа. В строке 13 тоже две проверки - RE и IM и их значения влияют на толщину внешних колючек, причём каждый на свои. Координаты , в которых ничего “интересного” с числами не происходит, снова получают пиксель белого цвета в строке 15. Как посмотреть в микроскоп Пикоувера на другие организмы? На самом деле это можно сделать с помощью этой же программы. Нужно лишь подставить другую формулу в сердцевину алгоритма, поменять операцию в строке 7 и параметры в строках 8,9,10 и 11. Пикоувер впервые столкнулся с биоморфами, когда совершил случайную ошибку в программе, предназначенной для изучения фрактальных свойств различных формул. Но биоморфы, кажется, зажили своей собственной жизнью. Как говорит Пикоувер: «В некотором смысле можно сказать, что математические создания существуют. Эти объекты обитают на комплексной плоскости, хотя и напоминают микроскопические организмы, которые мы легко можем увидеть в капле воды из любой лужи». В каком же море мы могли бы поймать представителей более развитых форм жизни? Пикоувер считает важным и тот факт, что сложность как естественных, так и искусственных организмов является результатом многократного применения простых динамических правил. А что, если мы на пути к разгадке появления жизни на Земле? Может быть миллиард лет назад в «первичном бульоне» молекулы сложных углеводов причудливо соединялись по законам, схожим с законом «жизни» комплексных чисел? Теперь очередь за математиками и программистами - получить устойчивые, движущиеся, приспосабливающиеся и, наконец, разумные биоморфы, научиться общаться с ними, попросить их (не заставить!) работать для людей. Источник: http://www.arbuz.narod.ru/z_biom1.htm Смотрите также:Про фракталыКомментарии:
di5temper
21 марта 2008 г. 10:08 #
СВОЕОБРАЗНЫМ индексом. Статья написана максимально популярно, чтобы даже люди далекие от математики могли попытаться понять, что к чему :) {Ответить}
5 баллов
TYAN
21 марта 2008 г. 10:59 #
Ого! di5temper-таки решился дебютировать? =) Неплохо было бы привести здесь побольше картинок биоморф. Кроме того, стоит отметить специфичность поста - наличие в нем текста программы (!). Пусть хоть и не сложной, но тем не менее, это делает пост достаточно узкоспециализированным и трудным для понимания людьми далекими от программирования... . С почином! +1 ;) {Ответить}
5 баллов
di5temper
21 марта 2008 г. 11:10 #
Пасибо за плюсы. Да, пост, скажем так, несколько специфичен. По-видимому, посвящается тем, кто был способен сидеть за 14-дюймовым монохромным монитором и высунув язык поражаться Паскалю. А отсутствие большого числа картинок возможно побудит юных компьютероковырятелей поменять строчки 7, 8, 9 и посмотреть, что из этого получится ;) {Ответить}
1 балл
Wavy
21 марта 2008 г. 15:03 #
ну врядли кто-то будет этот код вставлять куда-то... слишком уж узконаправленный пост. Хоть я и программист, но меня это не впечатлило {Ответить}
di5temper
21 марта 2008 г. 16:48 #
Хм, сейчас подумал и понял, что программерам пост будет неинтересен - есть куда более прикольные вещи, а менее искушенных пользователей возможно будет ломать что-то с этим делать :) Причина его (поста) появления - прочтение статьи о фракталах. Вспомнил, что когда-то ковырял эту прогу - и вот она здесь :) {Ответить}
Alex098
21 марта 2008 г. 16:02 #
что-то подобное писали мои студенты в ту пору, когда я преподавал информатику и программирование... {Ответить}
4 балла
di5temper
21 марта 2008 г. 17:32 #
За плюс спасибо :) Но через час чтобы ваша подгруппа на паре была!!! 8-) {Ответить}
di5temper
21 марта 2008 г. 17:39 #
Хм, возвращаясь к вопросу целевой аудитории - думаю, что это некоторые студенты. Может, глянув на картинки, они полюбят Паскаль... И даже начнут САМИ на нем писать программки. И даже зачет получат все в этом случае :) {Ответить}
Wavy
21 марта 2008 г. 17:51 #
паскаль можно любить как такие же древние 14-тидюймовые мониторы, ностальгия, так сказать :)) а если у тебя нет по нему ностальгии, то по собственной воле вряд ли кто-то будет на нем писать :)) {Ответить}
Smily
21 марта 2008 г. 18:02 #
Хм...поностальгировать конечно хорошо, но не так давно пришлось в Дельфях поработать, так долго плевался, дико неудобный язык для меня стал))) Кстати, дома стоят два 14-дюймовых монитора, рабочие))) Кому надо?))) {Ответить}
1 балл
di5temper
21 марта 2008 г. 18:52 #
Я никого не призываю программировать на чем-либо. Самому как-то раз пришлось поплеваться от Object Pascal'я. Но ТРУБО Паскаль, консолька - это у меня ассоциируется с той картинкой, где мышь сидит на компьютерной мыши а-ля чоппер и подпись "Born to be wild". Р-р-р-романтика! 8-) {Ответить}
JOE
21 марта 2008 г. 17:49 #
"Может быть миллиард лет назад в «первичном бульоне» молекулы сложных углеводов причудливо соединялись по законам, схожим с законом «жизни» комплексных чисел? Теперь очередь за математиками и программистами - получить устойчивые, движущиеся, приспосабливающиеся и, наконец, разумные биоморфы, научиться общаться с ними, попросить их (не заставить!) работать для людей." Господь, в совершенстве знающий математику комплексных чисел - это что то))) Лучше бы он сразу придумал PDP-11, проблем бы меньше было. Не мечтали бы тогда накуренные программеры о своём мировом господстве))) {Ответить}
1 балл
di5temper
21 марта 2008 г. 18:00 #
Далеко не все программеры курят. А вот мания величия есть у многих :) {Ответить}
Irinka
21 марта 2008 г. 18:25 #
"А вот мания величия есть у многих :)" Уважаемый препод, это вы на что намекаете? О_о Кстати в понед я была, о том , что пара будет, народ осведомлен. З.Ы. С меня взятки - гладки)) {Ответить}
di5temper
21 марта 2008 г. 18:40 #
К вам, уважаемая, это ничуть не относится, просьба не обижаться :) Есть знакомые кадры просто 8-) {Ответить}
Irinka
21 марта 2008 г. 18:49 #
Я и не думала обижаться)) На обиженных воду возят, правильно я говорю?)) З.Ы.Прога и правда прикольная... Ща запущу Паскаль, посмотрю, что он мне выдаст в реале)) {Ответить}
Alionsa
21 марта 2008 г. 18:24 #
Да, пост прикольный! Я уж совсем не программист, но прочитала, и стала думать о программировании гораздо лучше! Во всём есть свои прелести! {Ответить}
Ksu
21 марта 2008 г. 18:56 #
Я на паре тоже не присутствую, но программы я сама пишу))) Честное пионерское)))Это Ирина все сдувает))) {Ответить}
Irinka
21 марта 2008 г. 19:10 #
Я ведь не просто сдуваю, я еще и разбираюсь. Че ж так сразу( {Ответить}
Ksu
21 марта 2008 г. 18:57 #
Да, ктати, пост мне очень понравился, мы тут программку эту запускаем))) С почином))) {Ответить}
di5temper
21 марта 2008 г. 19:06 #
Пасибо. Тронут 8-) Но что-то мы начинаем флудить... Предлагаю отписываться в приват :) {Ответить}
TYAN
21 марта 2008 г. 20:12 #
И вообще, не в приват, а на пару!!! И не отписываться, а учиццо!!! {Ответить}
DeLa
21 марта 2008 г. 22:25 #
попробуем эту программку. Интересно,правда ли такое получится=) Только надо будет другую функцию попробовать {Ответить}
di5temper
21 марта 2008 г. 22:32 #
Картинки могут быть разными, есть почва для экспериментов :) {Ответить}
Магон
22 марта 2008 г. 00:28 #
di5temper: а нет чего-нибуть еще про компьютерную графику? {Ответить}
di5temper
22 марта 2008 г. 15:20 #
Ненадолго уезжаю из города, если творческий отпуск будет успешным, то по приезду еще чего-нибудь накалякаю 8-) {Ответить} |
Авторы
ღstregaღ
-=JuliART=-®
13
22_Kilometr
Agent Smith
Aleksander
Alex
Alex098
Alexxxey
AlfX
Alibaba
Alinia
andre
Annet
Asa
Asd
Atlas
AutumnMan
Avtor
BankRat
Bastet
Belstar
Caracupa
cave
Celios
cooker
Danilko
Dark_Night
ded
Dimas
DimON
Dim_
docha
Doll-Perian
DP
Drz
duke
eagle
Elias
Elle
ElMiNa
EVA
g578
Gandg
HaN
Hanter
hi_
homoludes
IndLife
INGO
InoJ
ip027
Irisha
jade_tongue
Jareg
jasper096
jgun
Johan
john silver
Jonny_30
juja
JuliART®
Kalambur
Katya
Keti
knyaz
kofe
KOT
kovivi
Kuzia
LapTop
Lenka
Logan
Lynx
MADI
Maestro
magway
makc-barmaley
maldalik
MAlu
Malvado
Maxar
mazay
MaZайка
Medivh
mich70
milagros
Milena
milk
mir
Mirage
Mit5x
Mo/loC
Mollari
Molniy
mr.Fegin
Mr.Tod
MultiPROSHKA
Myst
Narn
Nbo Tuabe
Ni
Nicolete
Nimeria
Nirs
Noxwell
Oksana
Oladyshka
Panda22
Pantarei
POL
Ponchik
Puzzen
Qsaz
Ragnar Konung
Rash
Sakhalin
Samka
saveliy
Sayer
sazon
Scorpion
Scythian
SDM
Sephiroth
Serge
SlavaVG
SSergey
stalin-81
Stella
sui_generis
targetay
Toppinen
TYAN
urgen
USSR
V
Valek
Vilka
Vipi
Vl
vovkach
Walentai
xenon
ychenik
Zorba
Аграфена
Алёнка
Алисон
Алма
Анастасия
Андрюха®
Антоха
Анюта)
Артём
Бегущий Кролик
Белк
Борис Осипов
Борман
Брендон
Вайс
Вероника
Герда
Гого
Гюнтер
Диоген
Дмитрий
Дмитрий К.
Добрый волшебник
Елена
Елеонора
Елеонора
ЕНОТ_Полоскун
Злойкаксобака
Ильича репа
Карамелька
Котейка
кот_с_ушками
Кузя
ЛuceNok
летучая мышь-убийца
Лёха
Любим Коптяев
Макензи
МаргоВАнглии
МатвеевнА
Механик
Мотильда
Ната
не от мира
Незнайка
Немецкая овчарка
Николаич
Патамушта
Перворожденная
Птичка
Пятниццa
Рина
Роксолана
Россиянин
Рысь
Сабжер
Сайрус Смит
Сам-по-себе
Сатч
Сволочъ
Сергей_
Сестренка
Симпампулька
София
Странник
Таша
тетя Марина
Тушка/нчик
УтR()
Хрюша
Чарли
шумахер
Юлька
Юля
|{апрал
|
|||||||











i-не индекс!!! Индекс записывает маленькой цифрой чуть ниже символа переменной. i-мнимая единица, т.е. число, которое при возведении в квадрат дает -1.
{Ответить}