Merry Christmas this script is Penrose and Mackey tile
using turtle graphics M.Shimura NB. --------------cut here--------------------- NB. Penrose tile and Mackey tile NB. written by SHIMURA Masato // Sept. 2011 NB. jcd02...@nifty.com NB. http://japla.sakura.ne.jp NB. -------------------------------- NB. * show pen_50 NB. penrose NB. * show mackey_xL NB. Mackey NB. ------------------------- NB. * show pen_20 NB. small penrose NB. * point_explain '' NB. explain pieces NB. ------------------------ require 'turtle' NB. rfd dfr is already setting in turtle SIN=: 1&o.@ rfd r36=: (SIN 36) * % SIN 108 NB. sin law // sin theta1/L1 = sin theta2/L2 NB. * show dectagon dectagon=: repeat 10 ;' rt 36 fd r36' NB. 10gon NB. ----parts---------------------------------------- F1=: ' fd 1' Fr=: ' fd r36' B36r=: ' bk r36 rt 36' NB. ------------------- R361=: ' rt 36 fd 1' R36r=: ' rt 36 fd r36' R721=: ' rt 72 fd 1' R72r=: ' rt 72 fd r36' R1081=: ' rt 108 fd 1' R108r=: ' rt 108 fd r36' R1441=: ' rt 144 fd 1' R144r=: ' rt 144 fd r36' R1801=: ' rt 180 fd 1' R180r=: ' rt 180 fd r36' NB. ----------------- L361=: ' lt 36 fd 1' L36r=: ' lt 36 fd r36' L721=: ' lt 72 fd 1' L72r=: ' lt 72 fd r36' L1081=: ' lt 108 fd 1' L108r=: ' lt 108 fd r36' L1441=: ' lt 144 fd 1' L144r=: ' lt 144 fd r36' NB. ----block-------------------- p01=: R144r,L36r ,R1441 NB. darts p02=: L1081,R1081,R144r,L36r NB. --------------------- p11=: R108r ,R36r, R1081 NB. keit p12=: R1081, R108r p13=:,R36r,R1081,R1801,R108r p14=: R36r,R1081,R1081,L1081 NB. ------------------------------- NB. darts pen01=: F1,p01 pen02=: R1801 ,p01 NB. keit pen11=: R1801 ,p11 NB. -----object---------------------------- circ_0=: pen01,(repeat 4 ; pen02) NB. darts stand alone NB. ------------------------------------------------ circ_1=: pen11,(repeat 4 ; pen11) NB. keit stand alone NB. start is outside circ_11=: L36r,R36r,R1081,R1081,R1801,L1081,R108r,p13,p13,p13,R36r NB. 4 pieces of keit circ_12=: L36r,R36r,R1081,R1081,R1801,L1081,R108r,p13,p13,R36r,R1081 NB. -----figure 0/1-mix--------------------------------- circ_01x=: L1441,L1081,p12,R36r,R180r,p14,L144r,R36r NB. Arc of keit arc_2=: F1, p11, R1801, p11 NB. ------watari------------------ watari_0=: R361 ,L108r NB. ' rt 36 fd 1 lt 108 fd r36' watari_1=: Fr,L36r NB. ' fd r36 lt 36 fd r36' watari_2=: R1801,R36r , ' lt 144' watari_3=: R1081,R108r NB. ----show----------------------- pen_20=: circ_1,watari_0,arc_2, (repeat 4 ; watari_1,arc_2) pen_50=: pen_20, watari_2,circ_11,circ_01x,repeat 4;(,B36r,circ_12,watari_3,ci rc_01x) NB. show pen_50,' lt 144',arc_2 NB. -----figure pentagon--------------------------------- figure_explain=: 0 : 0 point 0 lt 18 fd 1 point 1 rt 72 fd 1 rt 72 fd 1 rt 72 fd 1 point 2 rt 72 fd 1 point 3 rt 144 fd 1.6 lt 144 fd 1.6 lt 144 fd 1.6 rt 144 fd 1 rt 108 fd 1.6 rt 144 fd 1.6 rt 144 fd 1 point 4 rt 108 fd 0.6 point 5 ) point_explain=: 3 : 0 show figure_explain label 0 label 1 0.05 0 ;2; 'B' label 2 0.05 _0.05 ;1; 'C' label 3 _0.05 0.05 ;2; 'A' label 4 _0.05 _0.05 ;1; 'D' label 5 _0.05 0.05 ;2; 'E' addlabels'' ) NB. ===Mackey pentomino=============================== de10=: 2p1 % 10 decta2=: repeat 10 ;' rt 36 fd de10' NB. ---------------------------------- decta0=: repeat 10; R361 decta1=: repeat 10; L361 decta4=:decta0,decta1,(L361,L361),decta0,(R1801,R361,L1081,R361,R361),decta1 NB. ------------------------ m0=: R1081,R721,R1081 m01=: L1081,L721,L1081 m1=: R721,R1081,R721 m11=: R721,R1081,L721 m2=: L361,R1081,R721 ms0=: m0,R721 NB. m1x0 and m1x1 is another procedure m1x0=: L1081,m0,R721,R361,R721,R1081 NB. 2 pieces m1x1=: L721,m1,m01,' lt 144' m1x3=:L1081,m1,L1081,m1,R361,R721,R1081 NB. upper 5 parallelagon m1x2=: L1441,m1,R721,R361,R1441,R1801,R1081,R721,L361,R721,R1081,R1801,R1441 m1x4=:L361,L1441,L361,L721,R361,R1441,R361,R1801,m0,L721,L1081,L721 NB. --------------------------------- NB. start is Right-Bottom to midpoint & end is right-middle mk0_5=: L721,m1,R1081,m2,(repeat 2;R1801,m1),R1801,R721,R1081 NB. ------------------------------------------ NB. pnly 5 same parallelagram mk1_50=: R721,m0,R1801,m0,L1441,m1,R1081,m2,L361,R721,R1081 NB. mk1_5 is start bottom rightside & end is rightside middle mk1_51=: m1x0,m1x2 NB. start point is bottom right mk1_52=: m1x1,m1x2 NB. start point is bottom midle to left mk1_53=: m1x3,m1x4 NB. stand alone 5 pieces of zu 1 m1x2c=: m1x2,R361 NB. start point is right-bottom NB. reverse updown of m1x2c // start mid bottom end left middle m1x2d=: L1081,m1,L361,(L721,L1081,L721),m0,L361,L1441,L361,L361,L361 NB. --------watari_mx----------------------------- watari_m0=: R361,L1081,' lt 144' watari_m1=: R361,R361,R721,' lt 72' watari_m2=: L361,' lt 108' watari_m3=: L361,L1441,' rt 36 ' watari_m4=: R1801,' lt 36' watari_m5=: R1801,R1441,' lt 108' NB. ------------------------------------- NB. show mk0_5, L361,L1441,' rt 72',m1x2d NB. OK NB. this connect isn't using by Makkey NB. show mk0_5 ,' lt 108',mk1_52 mackey_2=: mk0_5,m1x2c mackey_3=: mk0_5,m1x2c,R361,L1081,' lt 144',m1x2c mackey_6=: mk0_5,m1x2c, (repeat 4; watari_m0,m1x2c) NB. OK NB. itiou hairu mackey_x=: mackey_6,watari_m1,mk0_5,watari_m2,,mk1_52,watari_m3,mk0_5 mackey_x=: mackey_x,( repeat 3 ;watari_m4,mk1_52,watari_m5,mk0_5),watari_m4, mk1_52 mackey_xL=: mackey_6,' rt 144',mk0_5,R1801,mk1_51,( repeat 4;watari_m5,mk0_5,w atari_m4,mk1_52) NB. ---------------------------------- NB. run NB. * show pen_50 NB. * show mackey_xL NB. --------end of file----------------------------------------------- ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm