Processingã§ãã³ãã«ããéåãæã
ã©ããã108Hassiumã§ãã
以åããäœåºŠãèªäœã®ãã©ã¯ã¿ã«å³åœ¢çæããã°ã©ã ã玹ä»ããèšäºãæžããŠããŸããããå¿çšçãªè©±ã°ããèŒããŠåºç€çãªè©±ã¯ããŠãªãã£ãããšã«æ°ä»ããŸããã
â»âéå»èšäº
ãšããããã§ããã®èšäºã§ã¯ãã³ãã«ããéåãäŸãšããŠProcessingã§ãã©ã¯ã¿ã«å³åœ¢ãæç»ããæ¹æ³ãåºç€ãã解説ããããšæããŸãã
â»ç§ã®éå»èšäºã¯èªãã§ãªãåæã§è§£èª¬ããŸãããProcessingã®ææ³ã¯åŠç¿æžã¿ã§ãããã®ãšããŠããŸãã
å®çŸ©ãšèšç®æ³
ãŸãã¯ãã³ãã«ããéåã®å®çŸ©ãšãããã°ã©ã ã«èœãšã蟌ãã å Žåã®èšç®æ¹æ³ã説æããŸãã
ãã³ãã«ããéåã¯ã以äžã®æ°åãç¡é倧ã«çºæ£ããªããããªè€çŽ æ°$${c}$$ã®éåã§ãã
$${z_0=0}$$
$${z_{n+1}=z_n^2+c}$$
â»ç§ãæžããä»ã®èšäºã§ã¯éãå®çŸ©ãæ¡çšããŠããŠãäžèšã®ãã®ã¯ã$${z^2+c}$$ã®ãã³ãã«ããéåããšåŒãã§ããŸããä»ã®èšäºã§ã®å®çŸ©ã®æ¹ã䟿å©ãªã®ã§ããããã£ã¡ã®å®çŸ©ã®æ¹ãæ£åŒãªãã®ãããã®ã§ãã®èšäºã§ã¯ãã®å®çŸ©ãçšããŸãã
ãã®æ°åã䜿ã£ãŠã以äžã®ãããªæé ã«ãããã³ãã«ããéå(ã®è¿äŒŒå³)ããæç»ã§ããŸãã
è€çŽ å¹³é¢äžã®æç»ãããç¯å²ã決ããã(å®éšãšèéšã-2ïœ2ã®ç¯å²ã«ãããšãã³ãã«ããéåå šäœãã¡ããã©åãŸã)
æç»ããç¯å²ãæ Œåç¶ã«åºåãã
1åãã€ã®ãã¹ç®ã®äž(ã«ããšãã§ããã)ã®äžããè€çŽ æ°ã1ç¹åãããã®å€ã$${c}$$ãšããŠ$${z_n}$$ãèšç®ããã
$${z_n}$$ãç¡é倧ã«çºæ£ãããã©ããã§ãã¹ç®ãè²åãããã

Processingã§ã¯è€çŽ æ°ãçŽæ¥èšç®ããããšã¯ã§ããªãã£ãœãã®ã§ã$${z_n}$$ãèšç®ãããšãã¯å®éšãšèéšã«åããŠå®æ°ã®èšç®ã«èœãšã蟌ã¿ãŸãã
$${z_n=x_n+y_ni}$$ã$${c=a+bi}$$ãšãããšã$${z_{n+1}}$$ã®å®éšãšèéšã¯ä»¥äžã®ããã«èšç®ã§ããŸãã
$${\begin{cases}x_{n+1}=x_n^2-y_n^2+a\\y_{n+1}=2x_ny_n+b\end{cases}}$$
$${\displaystyle{\lim_{nâ\infty}}z_n}$$ãç¡é倧ã«çºæ£ãããã©ããã¯ã以äžã®å®çã§å€å®ã§ããŸãã
$${|z_m|>2}$$ãæºãã$${m}$$ãååšããã°ã$${\displaystyle{\lim_{nâ\infty}}z_n}$$ã¯å¿ ãç¡é倧ã«çºæ£ããã
â»èšŒæã¯çç¥ããŸãã
$${|z_n|=\sqrt{x_n^2+y_n^2}}$$ãªã®ã§ãå®éã«ã¯$${x_n}$$ãš$${y_n}$$ã1é ãã€èšç®ããŠ$${x_n^2+y_n^2}$$ã1åã§ã4ãè¶ ãããçºæ£ãããšå€å®ã§ããŸãã
ãã ãã$${|z_m|>2}$$ãæºãã$${m}$$ã®å€§ããã¯$${c}$$ã®å€æ¬¡ç¬¬ã§ãããã§ã倧ãããªãã®ã§ãå®éã«èšç®ããéã¯èšç®åæ°ã®äžéãé©åœã«æ±ºããŠäžéã«å°éãããåæãããšèŠåããŸãã
以äžããŸãšãããšã以äžã®ãããªæé ã§ãã³ãã«ããéåãæç»ã§ããããšã«ãªããŸãã
è€çŽ å¹³é¢äžã®æç»ãããç¯å²ã決ããã
æç»ããç¯å²ãæ Œåç¶ã«åºåãã
èšç®åæ°ã®äžéãæ±ºããã
1åãã€ã®ãã¹ç®ã®äžã®äžããè€çŽ æ°ã1ç¹åãããã®å€ã$${a+bi}$$ãšããŠ$${x_n}$$ãš$${y_n}$$ãš$${x_n^2+y_n^2}$$ãèšç®ããã
èšç®åæ°ã®äžéã«å°éãããŸã§ã«$${x_n^2+y_n^2}$$ã4ãè¶ ãããã©ããã§ãã¹ç®ãè²åãããã
å®éã®ã³ãŒã
å çšã®èª¬æã«ãªãã¹ãå¿ å®ã«æžããšã以äžã®ãããªã³ãŒããåºæ¥äžãããŸãã
void setup(){
size(2000,2000);
background(0);
noStroke();
double x,y,px,py,a,b;
boolean o;
for(int k=0;k<2000;k++){
for(int m=0;m<2000;m++){
a=(double)k/500.0-2.0;
b=(double)m/500.0-2.0;
x=0;
y=0;
o=true;
for(int n=1;n<=500&&o;n++){
px=x;
py=y;
x=px*px-py*py+a;
y=2.0*px*py+b;
if(x*x+y*y>4){
o=false;
fill(255);
rect(k,m,1,1);
}
}
}
}
}å®è¡ãããšä»¥äžã®ãããªç»åã衚瀺ãããŸãã

ãã®ã³ãŒãã ãšãã ç»åã衚瀺ããã ãã§ããã以äžã®ããã«æžãæããã°çæãããç»åã®ä¿åãã§ããŸãã
void setup(){
size(2000,2000);
background(0);
noStroke();
double x,y,px,py,a,b;
boolean o;
for(int k=0;k<2000;k++){
for(int m=0;m<2000;m++){
a=(double)k/500.0-2.0;
b=(double)m/500.0-2.0;
x=0;
y=0;
o=true;
for(int n=1;n<=500&&o;n++){
px=x;
py=y;
x=px*px-py*py+a;
y=2.0*px*py+b;
if(x*x+y*y>4){
o=false;
fill(255);
rect(k,m,1,1);
}
}
}
}
save("filename.png"); //ããã远å
}ãœãŒã¹ã³ãŒããäžæŠä¿åããŠããå®è¡ãããšãã³ãŒããä¿åãããŠãããã©ã«ãå ã«"filename"ãšããååã®ç»åãã¡ã€ã«ãä¿åãããŸãã
次ã¯ãã³ãŒãã®åèŠçŽ ã解説ããŸãã
void setup(){
size(2000,2000); //æç»ãµã€ãºã2000Ã2000ã«èšå®
background(0); //èæ¯ãé»ã«èšå®
noStroke(); //é·æ¹åœ¢ãæç»ãããšãã®æ ç·ãæ¶å»
double x,y,px,py,a,b; //倿°ã®å®£èš
boolean o; //倿°ã®å®£èš
...
}åæèšå®ã§ãã
宣èšãã倿°ã®ãã¡xãšyã$${x_{n+1}}$$ãš$${y_{n+1}}$$ã«ãpxãšpyã¯$${x_n}$$ãš$${y_n}$$ã«å¯Ÿå¿ããŠããŸãã
booleanåã®oã¯ãæ°åãçºæ£ãããã©ãã(=$${x_n^2+y_n^2}$$ã4ãè¶ ãããã©ãã)ã®å€å®çµæãæ ŒçŽããã®ã«äœ¿ããŸãã
ãã®ã³ãŒãã ãšå šäœãsetup颿°ã®äžã«æžããŠããæå³ã¯ç¹ã«ãªãã®ã§ãããåŸã§å¥ã®é¢æ°ãäœãã®ã§ãã®ããã«ããããsetup颿°ã䜿ã£ãŠããŸãã
...
for(int k=0;k<2000;k++){
for(int m=0;m<2000;m++){
a=(double)k/500.0-2.0;
b=(double)m/500.0-2.0;
x=0;
y=0;
o=true;
...
}
}
...äºéforæã§æ Œåç¶ã«$${a+bi}$$ã®å€ã決ãããšããã§ãã
...
for(int n=1;n<=500&&o;n++){
px=x;
py=y;
x=px*px-py*py+a;
y=2.0*px*py+b;
...
}
...$${z_n}$$ãèšç®ããéšåã§ãã
èšç®åæ°ã®äžéã500åã«èšå®ããäžéã«å°éãã以å€ã«ãbooleanå倿°oãfalseã«ãªã£ãŠãæ°åã®èšç®ã¯åæ¢ããŸãã
ãŸãxãšyã®å€ãpxãšpyã«ç§»ããpxãšpyã䜿ã£ãŠæ°ããxãšyãèšç®ããŠããŸãã
...
if(x*x+y*y>4){
o=false;
fill(255);
rect(k,m,1,1);
}
...çºæ£å€å®ã§ãã
$${x_{n+1}^2+y_{n+1}^2}$$ã4ãè¶ ãããããŸãoãfalseã«ããŠèšç®çµäºã®ãã©ã°ãç«ãŠãfill颿°ã§è²ã決ããrect颿°ã§1Ã1ã®é·æ¹åœ¢ãæç»(=ãã¹ç®ãå¡ãã€ã¶ã)ããŸãã
åã«ãçºæ£ãããã©ããã§è²åãããããšèª¬æããŸããããçºæ£ããªãããšãå€å®ããã®ã¯é¢åãªã®ã§å®éã¯çºæ£ãããšãã ãè²ãå¡ã£ãŠããŸãã(çºæ£ããªãã£ãå Žåã¯æåã«å¡ã£ãé»ãèæ¯ã衚瀺ããã)
ã¡ãªã¿ã«ããã®ã³ãŒãã§ã¯fill颿°ã®äžèº«ã¯æ¯ååãå€ãªã®ã§ãäžéforæã®å€åŽãšãã«çœ®ããŠãããã®ã§ãããåŸã§è²ã现ããå€ããã³ãŒãã®èª¬æãããã®ã§ãã®äœçœ®ã«çœ®ããŠãããŸãã
ã«ã©ãŒãªã³ã°ã®å€æŽ
fill颿°ã®äžèº«ã倿Žããããšã§ãã«ã©ãŒãªã³ã°ã倿Žã§ããŸãã
fill(pow(1.0-(float)n/500.0,9)*256);äžèšã®ããã«å€æŽãããšãçæãããç»åã¯ä»¥äžã®ããã«ãªããŸãã

å€åŽã®çœãé åã«ã°ã©ããŒã·ã§ã³ãã§ãã现ããæç¶ã®æ§é ãçŸããŸããã
ãã®ä»ã«ãé¢çœãåœ©è²æ¹æ³ãããããããã®ã§ãããã€ã玹ä»ããŸãã
ã¡ã¿ãªãã¯

fill(120+20*(float)y);éå±ã£ãœãèŠãç®ã«ãªãé è²ã§ãã
以äžã®ããã«ã¢ã¬ã³ãžãããšéãçš®é¡ã®éå±ã¿ãããªè²ã«ãªããŸãã

fill(120+20*(float)y,120+20*(float)y,0);
fill(120+20*(float)y,60+10*(float)y,0);ããŒãªãŒããŒãœã³

fill((float)(x*x)*64,(float)(y*y)*64,0);ãšã«ããæããé è²ã§ãã
â»noteã®ä»æ§ã«ãããã°ã©ããŒã·ã§ã³ãæ£åžžã«è¡šç€ºãããŠããŸããã

fill((float)(x*x)*64,0,(float)(y*y)*64);
fill((float)(x*x)*64,(float)(y*y)*64,255);éªè§£ã

fill(cr(n*7),cr(n*8),cr(n*9));ãã®åœ©è²é¢æ°ã䜿ãã«ã¯ã以äžã®é¢æ°ãã³ãŒãã®æåŸã«è¿œå ããå¿ èŠããããŸãã
float cr(float n){
return (n%256)*(256-(n%256))/65;
}ãããŸã§ã«ç޹ä»ãããã®ãšæ¯ã¹ããšå°å³ãªé è²ã§ãããåŸã§èª¬æãããã³ãã«ããéåã®æ¡å€§å³ã®æç»ã«ãããŠåšåãçºæ®ããŸãã
åæ§ã«ã以äžã®åœ©è²æ¹æ³ãæ¡å€§å³ã®æç»ã«äŸ¿å©ãªã®ã§å¥œã¿ã«å¿ããŠäœ¿ãåãããšããã§ãããã

fill(cr(n*9),cr(n*9+85),cr(n*9+170));
fill(cr(n),cr(n*2),cr(n*3));æ¡å€§
ãã³ãã«ããéåã®æç»ã®ééå³ãšããã°ãæ¡å€§å³ã®æç»ã§ãã
äŸãã°ã$${c=-1.37012+0.009495i}$$ä»è¿ã100000åã«æ¡å€§ãããšä»¥äžã®ããã«ãªããŸãã

ããã¯ä»¥äžã®ã³ãŒãã§æç»ããŸããã
void setup(){
size(2000,2000);
background(0);
noStroke();
double x,y,px,py,a,b,cx,cy,r;
boolean o;
r=100000.0;
cx=-1.37012;
cy=0.009495;
for(int k=0;k<2000;k++){
for(int m=0;m<2000;m++){
a=(double)k/(1000.0*r)+cx-1.0/r;
b=(double)m/(1000.0*r)+cy-1.0/r;
x=0;
y=0;
o=true;
for(int n=1;n<=5000&&o;n++){
px=x;
py=y;
x=px*px-py*py+a;
y=2.0*px*py+b;
if(x*x+y*y>4){
o=false;
fill(cr(n*7),cr(n*8),cr(n*9));
rect(k,m,1,1);
}
}
}
}
save("-1.37012+0.009495,100000.0.png");
}
float cr(float n){
return (n%256)*(256-(n%256))/65;
}æ¡å€§åçã衚ãrãäžå¿åº§æšã衚ãcxãšcyãšãã倿°ã远å ãããnã®äžéã500ãã5000ã«å¢ããŠããŸãã
èšç®åæ°ãå¢ãããªãã£ãå Žåãçºæ£ã®é ãé åãããŸãæç»ã§ãã以äžã®ããã«ãªããŸãã

ãæ¡å€§ãããšé¢çœã座æšããèŠã€ããã«ã¯ã以äžã®ã³ãŒãã䟿å©ã§ãã
void setup(){
size(1000,1000);
background(0);
noStroke();
double x,y,px,py,a,b,cx,cy,r;
boolean o;
r=1.0;
cx=0;
cy=0;
for(int k=0;k<1000;k++){
for(int m=0;m<1000;m++){
if(k==500||m==500){
fill(255,255,0);
rect(k,m,1,1);
}else if(m%50==0||k%50==0){
fill(255,0,0);
rect(k,m,1,1);
}else{
a=(double)k/(500.0*r)+cx-1.0/r;
b=(double)m/(500.0*r)+cy-1.0/r;
x=0;
y=0;
o=true;
for(int n=1;n<=500&&o;n++){
px=x;
py=y;
x=px*px-py*py+a;
y=2.0*px*py+b;
if(x*x+y*y>4){
o=false;
fill(cr(n*7),cr(n*8),cr(n*9));
rect(k,m,1,1);
}
}
}
}
}
}
float cr(float n){
return (n%256)*(256-(n%256))/65;
}ãããå®è¡ãããšã以äžã®ãããªç»é¢ã衚瀺ãããŸãã

ç»é¢ã®ãµã€ãºã2000Ã2000ã§ã¯ãªã1000Ã1000ã«ãªããæç»ãããç¯å²ãå®éšãšèéšã-1ïœ1ã®ç¯å²ã«ãªãã20Ã20ã®ãã¹ç®ã衚瀺ãããŸãã
äŸãã°ä»¥äžã®éäžžã®äœçœ®ãæ¡å€§ãããšããŸãã

ãã¹ç®ãæ°ãããšãäžå€®ããå³ã«4ãã¹ãäžã«2ãã¹ã®äœçœ®ã«ããã®ã§rãšcxãšcyã以äžã®ããã«æžãæããŸãã
r=10.0;
cx=0+4.0/10.0;
cy=0+2.0/10.0;æžãæããŠããå床å®è¡ãããšä»¥äžã®ããã«ãªããŸãã

次ã¯ãããæ¡å€§ããŸãã

r=100.0;
cx=0+4.0/10.0-1.0/100.0;
cy=0+2.0/10.0-2.0/100.0;
ãã®ããã«ã
rã10åãã
æ¡å€§ãããäœçœ®ã®åº§æšÃ·rãcxãšcyã«ããããè¶³ã
ãšããæé ãç¹°ãè¿ããå¿ èŠã«å¿ããŠèšç®åæ°ãå¢ããããšã§ãé¢çœãæ¡å€§å³ãåŸããããã©ã¡ãŒã¿ãèªç±ã«æ¢ãããšãã§ããŸãã
ãã ãã以äžã®ç¹ã«æ³šæããå¿ èŠããããŸãã
座æšã®æšªè»žã¯å³ããã©ã¹ã ãã瞊軞ã¯äžããã©ã¹ã«ãªã£ãŠãã
1000000000åä»¥äžæ¡å€§ããããšãããšcxãšcyã®å€æŽãæ£åžžã«åæ ãããªããªã
èšç®åæ°ãå¢ãããŸãããšå Žæã«ãã£ãŠã¯æç»ã«ãããæéãéåžžã«é·ããªã
ã¡ãªã¿ã«ãåœ©è²æ¹æ³ãå€ãããšä»¥äžã®ããã«ãªããŸãã


æåã«ç޹ä»ããfill(pow(1.0-(float)n/500.0,9)*256);ãšããåœ©è²æ³ã§ã¯nã®äžéãå¢ãããã³ã«ãã©ã¡ãŒã¿ã埮調æŽããå¿ èŠããããå®ã¯cr颿°ã¯ãã®åé¡ç¹ãè§£æ¶ããããã«äœã£ã颿°ã§ãã
pow(1.0-(float)n/500.0,9)*256ãšãã颿°ã¯nã500ãè¶ ãããš255ãè¶ ããŠããŸããŸãããcr(n)ã¯nãã©ãã ã倧ãããŠã0ïœ255ã®ç¯å²ã«åãŸãããã«ãªã£ãŠããŸãã

xãyã®å€ã䜿ã£ãã«ã©ãŒãªã³ã°ã§ã255ãªãŒããŒåé¡ã¯è§£æ±ºã§ããã®ã§ããããã³ãã«ããé忬æ¥ã®ç·ç¶ã®æ§é ãèŠãã«ãããªã£ãŠããŸããã¡ãªã®ã§ããŸã奜ãã§ã¯ãããŸããã
èšç®ã®é«éå
ãèšç®åæ°ãå¢ãããšæç»ã«æéããããããšã¯èšããŸããããäžå¿å¯ŸåŠæ³ã¯ãããŸãã
void setup(){
size(2000,2000);
background(0);
noStroke();
double x,y,px,py,a,b,dx=0,dy=0;
boolean o;
for(int k=0;k<2000;k++){
for(int m=0;m<2000;m++){
a=(double)k/500.0-2.0;
b=(double)m/500.0-2.0;
x=0;
y=0;
o=true;
for(int n=1;n<=50000&&o;n++){
px=x;
py=y;
x=px*px-py*py+a;
y=2.0*px*py+b;
if(n%100==1){
dx=x;
dy=y;
}else if((x-dx)*(x-dx)+(y-dy)*(y-dy)<1e-10){
o=false;
}
if(x*x+y*y>4){
o=false;
fill(cr(n*7),cr(n*8),cr(n*9));
rect(k,m,1,1);
}
}
}
}
}
float cr(float n){
return (n%256)*(256-(n%256))/65;
}ãã®ã³ãŒãã§ã¯èšç®åæ°ã50000åãŸã§å¢ããããŠããŸããã(ç§ã®ç°å¢ã§ã¯)500åãšã»ãŒåãããã«é«éã§æç»ã§ããŸãã
dxãšdyãšãã倿°ã远å ããã$${z_n}$$ã100åèšç®ããããšã«$${z_n}$$ã®å®éšãšèéšã®å€ãæ ŒçŽããã$${|z_n-(dx+dyi)|^2}$$ã1e-10(=$${10^{-10}}$$)æªæºã«ãªã£ãã$${z_n}$$ã®èšç®ãæã¡åãããšããåŠçãããŠããŸãã
ã©ããã$${z_n}$$ãçºæ£ããªããšãã¯1åšæä»¥äžã®åšææ°åã«æŒžè¿ããŠããããããå çšã®ã³ãŒãã§ã¯åšæã100æªæºã®ãšãã«åšææ°åã«è¿ã¥ããŠãã£ãŠããã©ãããå€å®ããŠããŸãã
æ¡å€§å³ãæç»ããå Žåã¯100以äžã®åšæãæã€é åãæç»ç¯å²å ã«å€§ããæ ã蟌ãã§ãããéŸå€ã1e-10ã§ã¯ç²ŸåºŠäžè¶³ã ã£ããããããšããããåè ã®å Žåã¯é«éåã®æ©æµãåŸããããåŸè ã ãšèª€å€å®ãçããŠèšç®åæ°ãå¢ãããæå³ããªããªããŸãã
ãã®2ç¹ã«é¢ããŠã¯ãããããn%100==1ã®100ã®éšåãš1e-10ã®10ã倧ããæ°å€ã«å€ããããšã§è§£æ±ºã§ããŸãã
ãããããã©ã¡ãŒã¿ã®å°çް工ã§ã¯è§£æ±ºã§ããªãåé¡ããããŸãã
ãã³ãã«ããéåã®ããã®èŸºãã¯åæãé ããèšç®åæ°ãå¢ãããšã©ãããŠãèšç®ã«æéãããã£ãŠããŸããŸãã

ãã³ãã«ããéå以å€ã®å³åœ¢
ã³ãŒããå°ãæžãæããã ãã§ããã³ãã«ããéå以å€ã®ãã©ã¯ã¿ã«å³åœ¢ãæç»ã§ããŸãã
ãã«ãããéå

void setup(){
size(2000,2000);
background(0);
noStroke();
double x,y,px,py,a,b;
boolean o;
for(int k=0;k<2000;k++){
for(int m=0;m<2000;m++){
a=(double)k/500.0-2.0;
b=(double)m/500.0-2.0;
x=0;
y=0;
o=true;
for(int n=1;n<=500&&o;n++){
px=x;
py=y;
x=px*px*px-3.0*px*py*py+a;//ãããå€ãã
y=3.0*px*px*py-py*py*py+b;//ãããå€ãã
if(x*x+y*y>4){
o=false;
fill(cr(n*7),cr(n*8),cr(n*9));
rect(k,m,1,1);
}
}
}
}
}
float cr(float n){
return (n%256)*(256-(n%256))/65;
}$${d}$$次ã®ãã«ãããéåã¯ã$${z_0=0,z_{n+1}=z_n^d+c}$$ãšããæ°åãç¡é倧ã«çºæ£ããªããããªå®æ°$${c}$$ã®éåã§ãã
$${d=2}$$ã ãšæ®éã®ãã³ãã«ããéåã«ãªãã$${d>3}$$ã®ãšãããã³ãã«ããéåãšåæ§ã«æ¡å€§ãããšç¶ºéºãªç»åãåŸãããŸãã

ããŒãã³ã°ã·ãããã©ã¯ã¿ã«

void setup(){
size(2000,2000);
background(0);
noStroke();
double x,y,px,py,a,b;
boolean o;
for(int k=0;k<2000;k++){
for(int m=0;m<2000;m++){
a=(double)k/500.0-2.0;
b=(double)m/500.0-2.0;
x=0.3;
y=0.5;
o=true;
for(int n=1;n<=500&&o;n++){
px=abs(x);//ããã倿Ž
py=abs(y);//ããã倿Ž
x=px*px-py*py+a;
y=2.0*px*py+b;
if(x*x+y*y>4){
o=false;
fill(cr(n*7),cr(n*8),cr(n*9));
rect(k,m,1,1);
}
}
}
}
}
float cr(float n){
return (n%256)*(256-(n%256))/65;
}
double abs(double x){//ãããã远å
if(x<0){
return -x;
}else{
return x;
}
}ããŒãã³ã°ã·ãããã©ã¯ã¿ã«ã¯ããã³ãã«ããéåã®èšç®ã«äœ¿ãæ°åã$${z_{n+1}=(|Re(z_n)|+|Im(z_n)|i)^2+c}$$($${Re(z)}$$ãš$${Im(z)}$$ã¯$${z}$$ã®å®éšãšèéš)ã«å€ããéã«çæãããå³åœ¢ã§ãã
Processingã«ã¯çµ¶å¯Ÿå€ãèšç®ãã颿°ãçšæãããŠããã®ã§ãããdoubleåã«ã¯å¯Ÿå¿ããŠããªããããªã®ã§èªåã§é¢æ°ãäœã£ãŠããŸãã
ããŒãã³ã°ã·ãããã©ã¯ã¿ã«ã¯è¹ã®ãããªåœ¢ãããŠããã®ãç¹åŸŽã§ã巊端äžå€®ããããæ¡å€§ãããšå°ããè¹ããããã䞊ãã§ããŸãã

ãªããããŒãã³ã°ã·ãããã©ã¯ã¿ã«ã¯ãã³ãã«ããéåãšéããèšç®ã®é«éåãããŸããããªã($${z_n}$$ãåšææ°åã«åæããªã)é åããããŸãã

å å¡«ãžã¥ãªã¢éå

void setup(){
size(2000,2000);
background(0);
noStroke();
double x,y,px,py,a,b;
boolean o;
for(int k=0;k<2000;k++){
for(int m=0;m<2000;m++){
//ãããã倿Ž
a=0.3;
b=0.5;
x=(double)k/500.0-2.0;
y=(double)m/500.0-2.0;
//ãããŸã§å€æŽ
o=true;
for(int n=1;n<=500&&o;n++){
px=x;
py=y;
x=px*px-py*py+a;
y=2.0*px*py+b;
if(x*x+y*y>4){
o=false;
fill(cr(n*7),cr(n*8),cr(n*9));
rect(k,m,1,1);
}
}
}
}
}
float cr(float n){
return (n%256)*(256-(n%256))/65;
}$${f(z)}$$ã®å å¡«ãžã¥ãªã¢éåãšã¯ã$${z_{n+1}=f(z_n)}$$ãšããæ°åãç¡é倧ã«çºæ£ããªããããªåæå€$${z_0}$$ã®éåã§ãã
aãšbã®å€ã$${z_n}$$ã®åŒã«å¯Ÿå¿ããéšåã倿Žããããšã§ãéã£ãèŠãç®ã®ãžã¥ãªã¢éåãçæããããšãã§ããŸãã





