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

Reply via email to