Dragon curve is shown here as constructed with the unfolding method.
See: https://demonstrations.wolfram.com/UnfoldingADragonCurve/
Here the stages are shown separately, and it is possible to replace the sphere with other figures to create various patterns. A spiral line is obtained when the points of rotations are connected.
See: https://demonstrations.wolfram.com/UnfoldingADragonCurve/
Here the stages are shown separately, and it is possible to replace the sphere with other figures to create various patterns. A spiral line is obtained when the points of rotations are connected.
In[]:=
v0={1/3,0,0};v1={2/3,0,0};v2={1,1/3,0};e1={0,0,0};e2={1,0,0};e3={1,1,0};e5={0,2,0};e7={-2,2,0};e9={-4,0,0};e11={-4,-4,0};e13={0,-8,0};e15={8,-8,0};e17={16,0,0};e19={16,16,0};e21={0,32,0};e23={-32,32,0};e25={-64,0,0};
In[]:=
spir = Line[{e1,e3,e5,e7,e9,e11,e13,e15,e17,e19,e21,e23,e25}];
Graphics3D[spir]
Graphics3D[spir]
Out[]=
int=Line[{{0.1,-0.6,0},{0,-0.5,0},{0.5,0.5,0}}];sp=Sphere[{0.5,0.5,0},0.25];(*Herespcanbereplacedwithsp=int,orotherobjecttocreatevariopuspatterns*)v0={1/3,0,0};v1={2/3,0,0};v2={1,1/3,0};s0=Line[{v0,v1}];s1=Translate[Rotate[Translate[{s0},{0,0,0}],Pi/2,{0,0,1}],{1,0,0}];join1=Line[{v1,v2}];s2={s0,s1,join1,sp};s3=Translate[Rotate[Translate[s2,{-1,-1,0}],-Pi/2,{0,0,1}],{1,1,0}];join2=Line[{{1,2/3,0},{2/3,1,0}}];s4={s3,s2,join2};s5=Translate[Rotate[Translate[s4,{0,-2,0}],-Pi/2,{0,0,1}],{0,2,0}];join3=Line[{{0,1+2/3,0},{-1/3,2,0}}];s6={s5,s4,join3};s7=Translate[Rotate[Translate[s6,{2,-2,0}],-Pi/2,{0,0,1}],{-2,2,0}];join4=Line[{{-2,1+2/3,0},{-2-1/3,2,0}}];s8={s7,s6,join4};s9=Translate[Rotate[Translate[s8,{4,0,0}],-Pi/2,{0,0,1}],{-4,0,0}];join5=Line[{{-4,-1/3,0},{-4-1/3,0,0}}];s10={s9,s8,join5};s11=Translate[Rotate[Translate[s10,{4,4,0}],-Pi/2,{0,0,1}],{-4,-4,0}];join6=Line[{{-4,-4-1/3,0},{-4-1/3,-4,0}}];s12={s11,s10,join6};s13=Translate[Rotate[Translate[s12,{0,8,0}],-Pi/2,{0,0,1}],{0,-8,0}];join7=Line[{{0,-8-1/3,0},{-1/3,-8,0}}];s14={s13,s12,join7};s15=Translate[Rotate[Translate[s14,{-8,8,0}],-Pi/2,{0,0,1}],{8,-8,0}];join8=Line[{{8,-8-1/3,0},{8-1/3,-8,0}}];s16={s15,s14,join8};s17=Translate[Rotate[Translate[s16,{-16,0,0}],-Pi/2,{0,0,1}],{16,0,0}];join9=Line[{{16,-1/3,0},{16-1/3,0,0}}];s18={s17,s16,join9};s19=Translate[Rotate[Translate[s18,{-16,-16,0}],-Pi/2,{0,0,1}],{16,16,0}];join10=Line[{{16,16-1/3,0},{16-1/3,16,0}}];s20={s19,s18,join10};s21=Translate[Rotate[Translate[s20,{0,-32,0}],-Pi/2,{0,0,1}],{0,32,0}];s22={s21,s20};s23=Translate[Rotate[Translate[s22,{32,-32,0}],-Pi/2,{0,0,1}],{-32,32,0}];s24={s23,s22};s25=Translate[Rotate[Translate[s24,{64,0,0}],-Pi/2,{0,0,1}],{-64,0,0}];s26={s24,s25};s27=Translate[Rotate[Translate[s26,{64,64,0}],-Pi/2,{0,0,1}],{-64,-64,0}];Graphics3D[{sp,s20},ViewPoint{0,0,10},BoxedFalse,ImageSize400]
Out[]=
In[]:=
Row[Graphics3D[#,BoxedFalse,ImageSize100,ViewPoint{0,0,10}]&/@{s2,s4,s6,s8,s10}]
Out[]=
In[]:=
Row[Graphics3D[#,BoxedFalse,ImageSize120,ViewPoint{0,0,10}]&/@{s14,s16,s18,s20}]
Out[]=
In[]:=
Row[Graphics3D[#,BoxedFalse,ImageSize240,ViewPoint{0,0,10}]&/@{s24,s26}]
Out[]=