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

Reply via email to