Dynamical Systems seminar is supported by RFBR project 20-01-00420-a and Laboratory Poncelet.
Файл:Herman-ring-1.png
Исходный файл (4000 × 2000 пкс, размер файла: 512 Кб, MIME-тип: image/png)
Этот файл из на Викискладе и может использоваться в других проектах. Информация с его страницы описания приведена ниже.
Краткое описание
ОписаниеHerman-ring-1.png |
English: Julia set for rational map with Herman rings.
|
Дата | |
Источник | Собственная работа |
Автор | Ilya Voyager |
Лицензирование
- Вы можете свободно:
- делиться произведением – копировать, распространять и передавать данное произведение
- создавать производные – переделывать данное произведение
- При соблюдении следующих условий:
- атрибуция – Вы должны указать авторство, предоставить ссылку на лицензию и указать, внёс ли автор какие-либо изменения. Это можно сделать любым разумным способом, но не создавая впечатление, что лицензиат поддерживает вас или использование вами данного произведения.
- распространение на тех же условиях – Если вы изменяете, преобразуете или создаёте иное произведение на основе данного, то обязаны использовать лицензию исходного произведения или лицензию, совместимую с исходной.
Разрешается копировать, распространять и/или изменять этот документ в соответствии с условиями GNU Free Documentation License версии 1.2 или более поздней, опубликованной Фондом свободного программного обеспечения, без неизменяемых разделов, без текстов, помещаемых на первой и последней обложке. Копия лицензии включена в раздел, озаглавленный GNU Free Documentation License.http://www.gnu.org/copyleft/fdl.htmlGFDLGNU Free Documentation Licensetruetrue |
Compare with :
-
better quality image, without src code
Source code
This is a Julia set of the following rational map:
where t=0.6151732.
We used rather straightforward boundary scanning method (see e.g. D. Saupe, Efficient computation of Julia sets and their fractal dimension, Physica D, v.28 n.3, p.358-370, Oct. 1987 [1]). C++ source code follows. It's available under CC BY-SA, GFDL and GPLv2+.
See also discussion for some notes about compiling and running the program.
#include <stdlib.h>
#include <math.h>
#include <time.h>
#include <iostream>
#include <complex>
inline double max(double a,double b)
{
return a>b?a:b;
}
using namespace std;
const double t=0.6151732;
const complex<double> rot=exp(2*M_PI*complex<double>(0,1)*t);//e^{2 \pi i t}
complex<double> f(complex<double> z)
{
// f(z) = e^{2 \pi i t}\cdot \frac{z^2(z - 4)}{1 - 4z},
return rot*(z*z*(z-4.))/(complex<double>(1,0)-4.*z);
}
int main()
{
//z=x+iy;
double xmin=-4.0,xmax=8.0,deltax,ymin=-3,ymax=3,deltay;
int precx=400, precy=200;
deltax=(xmax-xmin)/precx;
deltay=(ymax-ymin)/precy;
int iterations=4000;
double threshold=iterations/30*sqrt(deltax*deltax+deltay*deltay);
double x,y;
complex<double> zlt,zlb,zrt,zrb;
int i,k,l;
double maxdistance;
int color, MaxColor=15;
double infty=1.E4;
bool inf_zlt,inf_zlb,inf_zrt,inf_zrb;
cout << "P2" << endl << precx << " " << precy << endl << MaxColor << endl;
for(k=0;k<precy;k++)
{
y=ymax-k*deltay;
cerr << y << endl;
for(l=0;l<precx;l++)
{
x=xmin+l*deltax;
zlt=complex<double>(x-deltax/2,y+deltay/2);
zlb=complex<double>(x-deltax/2,y-deltay/2);
zrt=complex<double>(x+deltax/2,y+deltay/2);
zrb=complex<double>(x+deltax/2,y-deltay/2);
inf_zlt=false;
inf_zlb=false;
inf_zrt=false;
inf_zrb=false;
for(i=0;i<iterations;i++)
{
if(!inf_zlt){zlt=f(zlt);}
if(!inf_zlb){zlb=f(zlb);}
if(!inf_zrt){zrt=f(zrt);}
if(!inf_zrb){zrb=f(zrb);}
if(abs(zlt)>infty)
{
zlt=infty;
inf_zlt=true;
}
if(abs(zrt)>infty)
{
zrt=infty;
inf_zrt=true;
}
if(abs(zlb)>infty)
{
zlb=infty;
inf_zlb=true;
}
if(abs(zrb)>infty)
{
zrb=infty;
inf_zrb=true;
}
}
maxdistance=max(abs(zlt-zlb),max(abs(zlt-zrt),max(abs(zlt-zrb),max(abs(zlb-zrt),max(abs(zlb-zrb),abs(zrt-zrb))))));
if(maxdistance>threshold*8)
{
color=0;
}
else
{
if(maxdistance<threshold/8.)
{
color=MaxColor;
}
else
{
color=MaxColor-(int(log(maxdistance/threshold)/log(8)*7.)+7);
}
}
//if (x>0 && y>0) color=MaxColor-color; /* check the orientation of Z-plane by marking first quadrant */
cout << color << " ";
}
cout << endl;
}
return 0;
}
Элементы, изображённые на этом файле
изображённый объект
У этого свойства есть некоторое значение без элемента в
3 марта 2010
524 438 байт
2000 пиксель
4000 пиксель
image/png
31f9f6d810cb0d7b5a4ab88921aa238eda48e89f
История файла
Нажмите на дату/время, чтобы увидеть версию файла от того времени.
Дата/время | Миниатюра | Размеры | Участник | Примечание | |
---|---|---|---|---|---|
текущий | 10:18, 15 июля 2011 | 4000 × 2000 (512 Кб) | wikimediacommons>Soul windsurfer | reversed Y axis and bigger size |
Использование файла
Следующая страница использует этот файл: