| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | М | а | н | д | е | л | о | б | у | с | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
22.11.94 | |
| |
Я приглашаю читателей последовать |
за мной на манделобусе в путешествие |
по воображаемой равнине и совершить |
экскурсию в множество Мандельброта. |
Подобно точкам земной поверхности, |
положение которых можно определить по |
широте и долготе, точки на плоскости |
также имеют координаты. Точка (0,0) |
называется началом координат, лежит в |
центре плоскости. По мановению |
волшебной палочки читатель |
превращается невероятно крошечное |
существо, помещающееся в точке с |
координатами (a,b). Теперь читатель |
готов к тому, чтобы начать |
путешествие на маделобусе, но прежде чем подойдет манделобус, поясним его |
маршрут. Начав с точки (0,0), он проследует прямо к точке (а,b), где ожидает |
его читатель. Маршрут манделобуса можно описать сравнительно несложной |
формулой, пользуясь которой можно определить, в какой следующей пункт следует |
ехать после остановки в точке (x,y), а именно: (x^2 - y^2 + a, 2'x'y + b) |
Дорога, по которой следует манделобус, очень извилиста. Все маршруты его |
движения не похожи друг на друга, и каждый из них полностью определяется |
точкой (a,b) и формулой движения. |
Хотя поездка может продолжаться сколько угодно долго, пока есть желание |
повторять циклы вычислений, маршрут, по которому движется манделобус, будет |
либо ограниченным, либо неограниченным. Под этими словами понимается, что |
последовательность остановок будет всегда заключена внутри какой-то |
ограниченной зоны вокруг начала координат, либо выйдет за пределы этой зоны и |
устремится в бесконечность. |
Что же такое множество Мандельброта ? Это просто множество точек (a,b), в |
которых манделобус делает остановки на своем маршруте в ограниченной зоне. |
Множество образует непрерывный континуум в средней части плоскости, вблизи |
начала координат, с тонкими извивающимися ветвями на периферии. |
В компьютерных программах, генерирующих изображения множеств Мандельброта, |
цвет пиксел на экране зависит от того, устремится ли манделобус в |
бесконечность из точки (a,b), представляемой данным пикселом, и если да, то |
насколько быстро. |
Существует доказанная теорема (и следовательно, это безусловно верно), что |
если манделобус когда-либо достигнет точки, отстоящей от начала координат на |
две и более единиц, то он в конце концов уйдет в бесконечность. |
|
А.К. Дьюдни. Увлекательное путешествие по множеству Мандельброта. В Мире науки |
No.4 1989 | |
|
узор на рисунке построен при помощи программы, аналогичной этой: |
|
#include <graphics.h> |
#include <bios.h> |
|
main() { |
double StartX = -1.5, EndX = -1.20, StartY = -0.15, EndY = 0.15; |
double StepX, StepY; |
double x,y, x0, y0; |
int i,j, c, dr = EGA, md = EGAHI; |
|
StepX = (EndX - StartX) / 640; |
StepY = (EndY - StartY) / 350; |
initgraph(&dr, &md, ""); |
for(j = 0; j < 350; j++) for(i = 0; i < 640; i++) { |
x = 0; |
y = 0; |
c = 0; |
while (x*x + y*y < 2.0 && c < 300) { |
x0 = x*x - y*y + StartX + StepX * i; |
y0 = 2*x*y + StartY + StepY * j; |
c++; |
x = x0; |
y = y0; |
} |
c /= 10; |
c++; |
if (c > 15) c = 0; |
putpixel(i,j,c); |
} |
bioskey(0); |
return 0; |
} |
|