For Penrose tiling, see also http://www.jsoftware.com/jwiki/RE%20Boss/J-blog/PenroseTiling
R.E. Boss > -----Oorspronkelijk bericht----- > Van: programming-boun...@jsoftware.com [mailto:programming- > boun...@jsoftware.com] Namens M.Shimura > Verzonden: zondag 18 december 2011 12:12 > Aan: programming@jsoftware.com > Onderwerp: [Jprogramming] Penrose tile > > 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),dec > ta1 > 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 ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm