In[]:=
(*Mathematica*)Clear[f,dlst,pt,cr,ptlst,M,in,it,n0,x,y,aa,bb,in2]allColors=ColorData["Legacy"][[3,1]];firstCols=Join[{"Red","Blue","Magenta","Purple","Pink","Tomato","Red","DarkOrange","Orange","DeepNaplesYellow","Gold","Banana","Yellow","LightYellow","Orange","Pink","LightPink","Yellow","LightYellow","LightPink","White","DeepNaplesYellow","Orange","DarkOrange","Tomato","Red","Tomato","Pink","LightPink","DeepNaplesYellow","Orange","DarkOrange","Tomato","White","Pink","Banana","LightBlue","DodgerBlue","Cyan","White","Purple","DarkOrchid","Magenta","ManganeseBlue","DeepNaplesYellow","Orange","DarkOrange","Tomato","GoldOchre","LightPink","Magenta","Green","DarkOrchid","LightSalmon","LightPink","Sienna","Green","Mint","DarkSlateGray","ManganeseBlue","SlateGray","DarkOrange","MistyRose","DeepNaplesYellow","GoldOchre","SapGreen","Yellow","Yellow","Tomato","DeepNaplesYellow","DodgerBlue","Cyan","Red","Blue","DeepNaplesYellow","Green","Magenta","DarkOrchid","LightSalmon","LightPink","Sienna","Green","Mint","DarkSlateGray","ManganeseBlue","SlateGray","DarkOrange","MistyRose","DeepNaplesYellow","GoldOchre","SapGreen","Yellow","LimeGreen"},{"White","AliceBlue","LightBlue","Cyan","ManganeseBlue","DodgerBlue","Blue","Magenta","Purple","Pink","Tomato","Red","DarkOrange","Orange","DeepNaplesYellow","Gold","Banana","Yellow","LightYellow","Orange","Pink","LightPink","Yellow","LightYellow","LightPink","White","DeepNaplesYellow","Orange","DarkOrange","Tomato","Red","Tomato","Pink","LightPink","DeepNaplesYellow","Orange","DarkOrange","Tomato","White","Pink","Banana","LightBlue","DodgerBlue","Cyan","White","Purple","DarkOrchid","Magenta","ManganeseBlue","DeepNaplesYellow","Orange","DarkOrange","Tomato","GoldOchre","LightPink","Magenta","Green","DarkOrchid","LightSalmon","LightPink","Sienna","Green","Mint","DarkSlateGray","ManganeseBlue","SlateGray","DarkOrange","MistyRose","DeepNaplesYellow","GoldOchre","SapGreen","Yellow","Yellow","Tomato","DeepNaplesYellow","DodgerBlue","Cyan","Red","Blue","DeepNaplesYellow","Green","Magenta","DarkOrchid","LightSalmon","LightPink","Sienna","Green","Mint","DarkSlateGray","ManganeseBlue","SlateGray","DarkOrange","MistyRose","DeepNaplesYellow","GoldOchre","SapGreen","Yellow","LimeGreen"}];cols=ColorData["Legacy",#]&/@Join[firstCols,Complement[allColors,firstCols]];cr[n_]:=cr[n]=cols[[n]];dlst=ParallelTable[Random[Integer,{1,2}],{n,1000000}];
In[]:=
rotate[theta_]:={{Cos[theta],-Sin[theta]},{Sin[theta],Cos[theta]}};
In[]:=
n=15
Out[]=
15
In[]:=
an={0,5*Pi/4}
Out[]=
0,
5π
4
In[]:=
(*quasiconformaltransform:{5,2}*)
In[]:=
g={{5,2},{2,5}}/Sqrt[Det[{{5,2},{2,5}}]]
Out[]=
,,,
5
21
2
21
2
21
5
21
In[]:=
g1=Inverse[g]
Out[]=
,-,-,
5
21
2
21
2
21
5
21
In[]:=
qtd=g.Inverse[{{1,-Sqrt[7]},{Sqrt[7],1}}/2].g1
Out[]=
-+,-,-,-+
2+
5
4
3
1
2
21
21
5-+
1
2
3
5
4
21
21
5+
5
4
3
1
2
21
21
2-+
1
2
3
5
4
21
21
5-+
5
4
3
1
2
21
21
2+
1
2
3
5
4
21
21
2-+
5
4
3
1
2
21
21
5+
1
2
3
5
4
21
21
In[]:=
M={qtd,qtd}
Out[]=
-+,-,-,-+,-+,-,-,-+
2+
5
4
3
1
2
21
21
5-+
1
2
3
5
4
21
21
5+
5
4
3
1
2
21
21
2-+
1
2
3
5
4
21
21
5-+
5
4
3
1
2
21
21
2+
1
2
3
5
4
21
21
2-+
5
4
3
1
2
21
21
5+
1
2
3
5
4
21
21
2+
5
4
3
1
2
21
21
5-+
1
2
3
5
4
21
21
5+
5
4
3
1
2
21
21
2-+
1
2
3
5
4
21
21
5-+
5
4
3
1
2
21
21
2+
1
2
3
5
4
21
21
2-+
5
4
3
1
2
21
21
5+
1
2
3
5
4
21
21
In[]:=
in=N[{{-1,0},{1,0}}];
In[]:=
f[j_,{x_,y_}]:=M[[j]].{x,y}+in[[j]]
In[]:=
pt={0.5,0.5};
In[]:=
aa=ParallelTable[pt=f[dlst[[j]],pt],{j,Length[dlst]}];
In[]:=
(*ListPlot[aa,PlotStyleRed]*)
In[]:=
ptlst=Point[Developer`ToPackedArray[aa],VertexColorsDeveloper`ToPackedArray[cr/@dlst]];
In[]:=
gout=Graphics[{PointSize[.001],ptlst},AspectRatio1,PlotRangeAll,ImageSize2000,AxesFalse,BackgroundBlack];
In[]:=
Export["Tame_dragon_quasiconformal52_1000000.gif",gout]
Out[]=
Tame_dragon_quasiconformal52_1000000.gif
In[]:=
(*end*)
In[]:=
(*cr[n_]=If[n-10,RGBColor[0,0,1],If[n-20,RGBColor[0,1,0],If[n-30,RGBColor[1,0,0],RGBColor[0,0,0]]]];ptlst[n_]:=Table[{cr[dlst[[j]]],Point[pt=f[dlst[[j]],Sequence[pt]]]},{j,Length[dlst]}];gout=Table[Show[Graphics[Join[{PointSize[.001]},ptlst[n]]],AspectRatio->Automatic,PlotRange->All],{n,0,20}];Export["Riddle_tame_dragon50000.gif",gout]"Riddle_tame_dragon50000.gif"*)