diff options
author | Karl Berry <karl@freefriends.org> | 2023-06-06 20:05:50 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2023-06-06 20:05:50 +0000 |
commit | e31f816419026769ef215c1054c17ca9352c31cd (patch) | |
tree | 4d1b3d0d35c305560b35c5694aa367c7f91d6260 /Master/texmf-dist/tex/latex/tilings/tikzlibrarytilings.polykite.code.tex | |
parent | 7e61cad6f238e1b65b2a012be3c739cd641d5fb5 (diff) |
tilings (6jun23)
git-svn-id: svn://tug.org/texlive/trunk@67292 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/tilings/tikzlibrarytilings.polykite.code.tex')
-rw-r--r-- | Master/texmf-dist/tex/latex/tilings/tikzlibrarytilings.polykite.code.tex | 859 |
1 files changed, 859 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/tilings/tikzlibrarytilings.polykite.code.tex b/Master/texmf-dist/tex/latex/tilings/tikzlibrarytilings.polykite.code.tex new file mode 100644 index 00000000000..8efff82ac62 --- /dev/null +++ b/Master/texmf-dist/tex/latex/tilings/tikzlibrarytilings.polykite.code.tex @@ -0,0 +1,859 @@ +%% +%% This is file `tikzlibrarytilings.polykite.code.tex', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% tilings_code.dtx (with options: `polykite') +%% ---------------------------------------------------------------- +%% tilings --- TikZ library for producing tilings +%% E-mail: loopspace@mathforge.org +%% Released under the LaTeX Project Public License v1.3c or later +%% See http://www.latex-project.org/lppl.txt +%% ---------------------------------------------------------------- +%% +\RequirePackage{tikz} +\usetikzlibrary{tilings} +\ProvidesFile {tikzlibrarytilings.polykite.code.tex} + [2023/06/01 v2.0 TikZ pics for Aperiodical Polykite tiles] +\DeclareDocumentCommand \DefinePolykiteTile {s m m m} +{ + \IfBooleanTF {#1} + { + \DefineTile {#2} {2 2 1 1 2 2 1 1 1 1 2 2 1 1} + } + { + \DefineTile {#2} {1 1 2 2 1 1 2 2 2 2 1 1 2 2} + } + { + {0 : #4} + ++{90 : #3} + ++{150 : #3} + ++{240 : #4} + ++{180 : #4} + ++{-90 : #3} + ++{210 : #3} + ++{-60 : #4} + ++{0 : #4} + ++{0 : #4} + ++{60 : #4} + ++{-30 : #3} + ++{30 : #3} + ++{120 : #4} + } +} +\DefinePolykiteTile{aperiodical hat}{sqrt(3)/2}{1/2} +\DefinePolykiteTile{spectral hat}{sqrt(3)/2}{1/2} +\DefinePolykiteTile{aperiodical turtle}{1/2}{sqrt(3)/2} +\DefinePolykiteTile*{spectral turtle}{1/2}{sqrt(3)/2} +\DefineTile {spectre} {a A a A a A a A a A a A a A} + { + {0 : .75} + ++{90 : .75} + ++{150 : .75} + ++{240 : .75} + ++{180 : .75} + ++{-90 : .75} + ++{210 : .75} + ++{-60 : .75} + ++{0 : .75} + ++{0 : .75} + ++{60 : .75} + ++{-30 : .75} + ++{30 : .75} + ++{120 : .75} + } +\DefineTile{meta cluster T}{A A b} +{ +{ -1.5 , -sqrt(3)/2 } +{ 1.5 , -sqrt(3)/2 } +{ 0 , sqrt(3) } +} +\DefineTile{meta cluster P}{1 D d A 1 D d b} +{ +{ -2.5, sqrt(3)/2 } +{ -2, 0 } +{ -1.5, -sqrt(3)/2 } +{ -0.5 , -sqrt(3)/2 } +{ 2.5 , -sqrt(3)/2 } +{ 2 , 0 } +{ 1.5 , sqrt(3)/2 } +{ .5 , sqrt(3)/2 } +} +\DefineTile{meta cluster F}{1 D d 1 D c C d b} +{ +{ -2.5, sqrt(3)/2 } +{ -2, 0 } +{ -1.5, -sqrt(3)/2 } +{ -0.5 , -sqrt(3)/2 } +{ .5 , -sqrt(3)/2 } +{ 1.5 , -sqrt(3)/2 } +{ 2 , 0 } +{ 1.5 , sqrt(3)/2 } +{ .5 , sqrt(3)/2 } +} +\DefineTile{meta cluster H}{B D d B D d a D d} +{ +{ -2, -sqrt(3) } +{ 1, -sqrt(3) } +{ 2, -sqrt(3) } +{ 2.5, -sqrt(3)/2 } +{ 1, sqrt(3)} +{ .5 , 3*sqrt(3)/2 } +{ -.5 , 3*sqrt(3)/2 } +{ -2, 0 } +{ -2.5, -sqrt(3)/2 } +} +\DefineTile{super cluster T}{A A b} +{ +{ -30 : 3 * (1 + sqrt(5))/2 / sqrt(3) } +{ 90 : 3 * (1 + sqrt(5))/2 / sqrt(3) } +{ 210 : 3 * (1 + sqrt(5))/2 / sqrt(3) } +} +\DefineTile{super cluster P}{1 D d A 1 D d b} +{ +{ - 1.75 - sqrt(5), (sqrt(5)/2 + 1) * sqrt(3)/2 } +++{ -60 : 1 + sqrt(5) } +++{ -60 : 1} +++{ 1, 0} +++{ 3*(1 + sqrt(5))/2, 0 } +++{ 120 : 1 + sqrt(5) } +++{ 120 : 1 } +++{ -1, 0 } +} +\DefineTile{super cluster F}{1 D d 1 D c C d b} +{ +{ - 1.75 - sqrt(5), (sqrt(5)/2 + 1) * sqrt(3)/2 } +++{ -60 : 1 + sqrt(5) } +++{ -60 : 1} +++{ 1, 0} +++{ 1 + sqrt(5), 0 } +++{ 1, 0 } ++{ -.75 + (2 + sqrt(5)) * sqrt(3)/4 * sqrt(3)/3, + (2 + sqrt(5)) * sqrt(3)/4 + 3/4 * sqrt(3)/3 } +++{ -1.5, (2 + sqrt(5)) * sqrt(3)/2 } +++{ -1, 0 } +} +\DefineTile{super cluster H}{B D d B D d a D d} +{ +{1.75 + 3*sqrt(5)/4, -(1 + sqrt(5))*sqrt(3)/4} +++{120 : 3*(1+sqrt(5))/2 } +++{120 : 1 } +++{-1,0} +++{240 : 3*(1+sqrt(5))/2} +++{240 : 1} +++{300 : 1} +++{ 3*(1+sqrt(5))/2, 0 } +++{1, 0} +++{60 : 1} +} +\DefineTile{subcluster H}{B B a} +{ + { 0, 0 } + { 3, 0 } + { 60 : 3 } +} +\DefineTile{subcluster T}{A A b} +{ + { 0, 0 } + { 3, 0 } + { 60 : 3 } +} +\DefineTile{subcluster P}{ 1 A 1 b } +{ + { 0, 0 } + { 1, 0 } + { 4, 0 } + { 3, 0 } +} +\DefineTile{subcluster F}{ 1 1 f F b } +{ + { 0, 0 } + { 1, 0 } + +{ 60 : 1 } + { 2, 0 } + { 3, 0 } +} +\tikzset{ + no clip/.code={% + \tikz@addmode{\tikz@mode@clipfalse}% + }, + every subcluster P clip/.style={no clip}, + every subcluster F clip/.style={no clip}, +} +\BakeTile {aperiodical hat} +\BakeTile {aperiodical turtle} +\BakeTile {spectral hat} +\BakeTile {spectral turtle} +\BakeTile {spectre} +\BakeTile {meta cluster T} +\BakeTile {meta cluster P} +\BakeTile {meta cluster F} +\BakeTile {meta cluster H} +\BakeTile {super cluster T} +\BakeTile {super cluster P} +\BakeTile {super cluster F} +\BakeTile {super cluster H} +\ExplSyntaxOn +\clist_map_inline:nn {a,A,b,B,f,F} +{ + \tl_new:c {g__tilings_side_polykite_#1_tl} + \tl_if_exist:cF {g__tilings_side_#1_tl} + { + \tl_new:c {g__tilings_side_#1_tl} + } +} + +\tl_gset:cn {g__tilings_side_polykite_A_tl} +{ + \pgfsyssoftpath@movetotoken {0pt}{-0.3333332942822268pt} + \pgfsyssoftpath@linetotoken {0.0833331478405773pt}{-0.1889954840909892pt} + \pgfsyssoftpath@linetotoken {0.3333332942822268pt}{-0.3333332942822268pt} + \pgfsyssoftpath@linetotoken {0.5833333235705567pt}{-0.1889954840909892pt} + \pgfsyssoftpath@linetotoken {0.6666667057177732pt}{-0.3333332942822268pt} + \pgfsyssoftpath@linetotoken {1pt}{-0.3333332942822268pt} +} +\tl_gset:cn {g__tilings_side_polykite_a_tl} +{ + \pgfsyssoftpath@movetotoken {0pt}{0.33333pt} + \pgfsyssoftpath@linetotoken {0.33333pt}{0.33333pt} + \pgfsyssoftpath@linetotoken {0.41667pt}{0.189pt} + \pgfsyssoftpath@linetotoken {0.66667pt}{0.33333pt} + \pgfsyssoftpath@linetotoken {0.91667pt}{0.189pt} + \pgfsyssoftpath@linetotoken {1pt}{0.33333pt} +} +\tl_gset:cn {g__tilings_side_polykite_B_tl} +{ + \pgfsyssoftpath@movetotoken {0pt}{0pt} + \pgfsyssoftpath@linetotoken {0.3333332942822268pt}{0pt} + \pgfsyssoftpath@linetotoken {0.4166665592761237pt}{0.1443378101912376pt} + \pgfsyssoftpath@linetotoken {0.6666667057177732pt}{0pt} + \pgfsyssoftpath@linetotoken {0.9166666178527835pt}{0.1443378101912376pt} + \pgfsyssoftpath@linetotoken {1pt}{0pt} +} +\tl_gset:cn {g__tilings_side_polykite_b_tl} +{ + \pgfsyssoftpath@movetotoken {0pt}{0pt} + \pgfsyssoftpath@linetotoken {0.08333pt}{-0.14433pt} + \pgfsyssoftpath@linetotoken {0.33333pt}{0pt} + \pgfsyssoftpath@linetotoken {0.58333pt}{-0.14433pt} + \pgfsyssoftpath@linetotoken {0.66667pt}{0pt} + \pgfsyssoftpath@linetotoken {1pt}{0pt} +} +\tl_gset:cn {g__tilings_side_polykite_F_tl} +{ + \pgfsyssoftpath@movetotoken {0pt}{-2.00000070292pt} + \pgfsyssoftpath@linetotoken {0.74999982427pt}{-1.566987221617321pt} + \pgfsyssoftpath@linetotoken {1pt}{-2.00000070292pt} +} +\tl_gset:cn {g__tilings_side_polykite_f_tl} +{ + \pgfsyssoftpath@movetotoken {0pt}{2pt} + \pgfsyssoftpath@linetotoken {0.25pt}{1.56699pt} + \pgfsyssoftpath@linetotoken {1pt}{2pt} +} + +\clist_map_inline:nn {a,A,b,B,f,F} +{ + \tl_gclear_new:c {g__tilings_side_backup_#1_tl} + \tl_gset_eq:cc {g__tilings_side_backup_#1_tl} {g__tilings_side_#1_tl} + \tl_gclear_new:c {g__tilings_side_#1_tl} + \tl_gset_eq:cc {g__tilings_side_#1_tl}{g__tilings_side_polykite_#1_tl} +} + +\BakeTile{subcluster~ H} +\BakeTile{subcluster~ T} +\BakeTile{subcluster~ P} +\BakeTile{subcluster~ F} + +\clist_map_inline:nn {a,A,b,B,f,F} +{ + \tl_gset_eq:cc {g__tilings_side_#1_tl} {g__tilings_side_backup_#1_tl} +} +\cs_new_protected_nopar:Npn \__tilings_place_cluster_tile:nn #1#2 +{ + \group_begin: + \int_gincr:N \g__tilings_tile_int + \fp_set:Nn \l__tilings_tmpa_fp {\l__tilings_step_dim/(1cm)} + \pgftransformscale{\fp_use:N \l__tilings_tmpa_fp} + \tl_set:Nx \l__tilings_tmpc_tl + { + {\int_use:N \g__tilings_tile_int} + {\int_use:N \g__tilings_tiles_int} + } + \UseTile[ + every~ tile/.try, + every~ #1~#2/.try, + tile~ \int_use:N \g__tilings_tile_int/.try, + tile/.try/.expand~ once=\l__tilings_tmpc_tl + ]{#1~ #2} + \group_end: +} +\cs_generate_variant:Nn \__tilings_place_cluster_tile:nn {Vn} +\prop_new:N \g__tilings_supercluster_lms_rule_prop +\prop_gput:Nnn \g__tilings_supercluster_lms_rule_prop {T} +{ + [s H] +} +\prop_gput:Nnn \g__tilings_supercluster_lms_rule_prop {H} +{ + [s {r{-60}} T] + [s {x{\fp_to_decimal:n{1}}} {y{\fp_to_decimal:n{(1+2*\c__tilings_phi_fp)}}} H] + [s + {x{\fp_to_decimal:n{-2-3*\c__tilings_phi_fp}}} + {y{\fp_to_decimal:n{-\c__tilings_phi_fp}}} + H] + [s + {x{\fp_to_decimal:n{1+3*\c__tilings_phi_fp}}} + {y{\fp_to_decimal:n{-1-\c__tilings_phi_fp}}} + {r{-120}} + H] + [s + {x{\fp_to_decimal:n{-1.5-3.5*\c__tilings_phi_fp}}} + {y{\fp_to_decimal:n{2.5*\c__tilings_phi_fp+1.5}}} + {r{-120}} + P] + [s + {x{\fp_to_decimal:n{-1.5-2*\c__tilings_phi_fp}}} + {y{\fp_to_decimal:n{-1.5-3*\c__tilings_phi_fp}}} + {r{180}} + P] + [s + {x{\fp_to_decimal:n{3+5.5*\c__tilings_phi_fp}}} + {y{\fp_to_decimal:n{.5*\c__tilings_phi_fp}}} + {r{120}} + P] + [s + {x{\fp_to_decimal:n{-4.5-6.5*\c__tilings_phi_fp}}} + {y{\fp_to_decimal:n{.5-.5*\c__tilings_phi_fp}}} + {r{-120}} + F] + [s + {x{\fp_to_decimal:n{1.5+4*\c__tilings_phi_fp}}} + {y{\fp_to_decimal:n{-2.5-3*\c__tilings_phi_fp}}} + F] + [s + {x{\fp_to_decimal:n{3+2.5*\c__tilings_phi_fp}}} + {y{\fp_to_decimal:n{2+3.5*\c__tilings_phi_fp}}} + {r{120}} + F] +} +\prop_gput:Nnn \g__tilings_supercluster_lms_rule_prop {P} +{ + [s {r{60}} P] + [s + {x{\fp_to_decimal:n{2.5+3.5*\c__tilings_phi_fp}}} + {y{\fp_to_decimal:n{-.5-.5*\c__tilings_phi_fp}}} + {r{-120}} + H] + [s + {x{\fp_to_decimal:n{-2.5-3.5*\c__tilings_phi_fp}}} + {y{\fp_to_decimal:n{.5+.5*\c__tilings_phi_fp}}} + {r{180}} + H] + [s + {x{\fp_to_decimal:n{4.5+6*\c__tilings_phi_fp}}} + {y{\fp_to_decimal:n{.5+\c__tilings_phi_fp}}} + {r{120}} + F] + [s + {x{\fp_to_decimal:n{-4.5-6*\c__tilings_phi_fp}}} + {y{\fp_to_decimal:n{-.5-\c__tilings_phi_fp}}} + {r{-60}} + F] +} +\prop_gput:Nnn \g__tilings_supercluster_lms_rule_prop {F} +{ + [s {r{60}} P] + [s + {x{\fp_to_decimal:n{2.5+3.5*\c__tilings_phi_fp}}} + {y{\fp_to_decimal:n{-.5-.5*\c__tilings_phi_fp}}} + {r{-120}} + H] + [s + {x{\fp_to_decimal:n{-2.5-3.5*\c__tilings_phi_fp}}} + {y{\fp_to_decimal:n{.5+.5*\c__tilings_phi_fp}}} + {r{180}} + H] + [s + {x{\fp_to_decimal:n{4.5+6*\c__tilings_phi_fp}}} + {y{\fp_to_decimal:n{.5+\c__tilings_phi_fp}}} + {r{120}} + F] + [s + {x{\fp_to_decimal:n{-4.5-6*\c__tilings_phi_fp}}} + {y{\fp_to_decimal:n{-.5-\c__tilings_phi_fp}}} + {r{-60}} + F] + [s + {x{\fp_to_decimal:n{3+4.5*\c__tilings_phi_fp}}} + {y{\fp_to_decimal:n{-2-2.5*\c__tilings_phi_fp}}} + F] +} +\prop_gput:Nnn \g__tilings_drawables_lms_prop {supercluster} {HTPF} +\fp_const:Nn \c__tilings_phi_fp {(1 + sqrt(5))/2} +\prop_new:N \g__tilings_supercluster_lms_action_prop + +\prop_gput:Nnn \g__tilings_supercluster_lms_action_prop {r} +{ + \pgftransformrotate{\l__tilings_parameters_lms_tl} +} +\prop_gput:Nnn \g__tilings_supercluster_lms_action_prop {x} +{ + \pgftransformxshift{ + \fp_to_dim:n + {.5 * (\l__tilings_parameters_lms_tl) * \l__tilings_step_dim} + } +} +\prop_gput:Nnn \g__tilings_supercluster_lms_action_prop {y} +{ + \pgftransformyshift{ + \fp_to_dim:n + {.5 * sqrt(3) * (\l__tilings_parameters_lms_tl) * \l__tilings_step_dim} + } +} + +\prop_gput:Nnn \g__tilings_supercluster_lms_action_prop {s} +{ + \fp_set:Nn \l__tilings_tmpa_fp { + \l__tilings_step_dim + / + \c__tilings_phi_fp + / + \c__tilings_phi_fp + } + \dim_set:Nn \l__tilings_step_dim {\fp_to_dim:N \l__tilings_tmpa_fp} +} +\prop_gput:Nnn \g__tilings_supercluster_lms_action_prop {H} +{ + \__tilings_place_cluster_tile:nn {super~ cluster}{H} +} +\prop_gput:Nnn \g__tilings_supercluster_lms_action_prop {T} +{ + \__tilings_place_cluster_tile:nn {super~ cluster}{T} +} +\prop_gput:Nnn \g__tilings_supercluster_lms_action_prop {P} +{ + \__tilings_place_cluster_tile:nn {super~ cluster}{P} +} +\prop_gput:Nnn \g__tilings_supercluster_lms_action_prop {F} +{ + \__tilings_place_cluster_tile:nn {super~ cluster}{F} +} +\cs_new_protected_nopar:Npn \__tilings_place_cluster_tile_as_pic:nnnnnn #1#2#3#4#5#6 +{ + \group_begin: + \int_gincr:N \g__tilings_tile_int + \fp_set:Nn \l__tilings_tmpa_fp {\l__tilings_step_dim/(1cm)} + \tl_set:Nx \l__tilings_tmpc_tl + { + {\int_use:N \g__tilings_tile_int} + {\int_use:N \g__tilings_tiles_int} + } + \tl_clear:N \l__tilings_tmpa_tl + \tl_put_right:Nn \l__tilings_tmpa_tl + { + \pic[ + every~ tile/.try, + every~ #1~#2/.try, + } + \tl_put_right:Nx \l__tilings_tmpa_tl + { + tile~ \int_use:N \g__tilings_tile_int/.try, + tile/.try=\l__tilings_tmpc_tl, + scale=\fp_use:N \l__tilings_tmpa_fp, + } + \tl_put_right:Nn \l__tilings_tmpa_tl + { + name=#3, + } + \tl_if_empty:nTF {#4} + { + \tl_put_right:Nn \l__tilings_tmpa_tl + { + first~ tile/.try, + } + } + { + \tl_put_right:Nn \l__tilings_tmpa_tl + { + align~ with=#4~along~#5 + } + \tl_if_single:nF {#6} + { + \tl_put_right:Nx \l__tilings_tmpa_tl + { + \c_space_tl using~\tl_tail:n {#6} + } + } + \tl_put_right:Nn \l__tilings_tmpa_tl {,} + } + \tl_put_right:Nn \l__tilings_tmpa_tl + { + #1~ #2 + ]; + } + \tl_use:N \l__tilings_tmpa_tl + \group_end: +} +\cs_generate_variant:Nn \__tilings_place_cluster_tile_as_pic:nnnnnn { + Vnnnnn, VnVnnn, VnVVnn +} +\tikzset{ + cluster~ type/.initial=super~ cluster, + first~ file/.style={transform~ shape} +} +\prop_new:N \g__tilings_cluster_lms_rule_prop +\cs_new_nopar:Npn \__tilings_tile_label: +{ + \tl_item:Nn \l__tilings_parameters_lms_tl {1} +} +\cs_new_nopar:Npn \__tilings_adjoint_label: +{ + \tl_item:Nn \l__tilings_parameters_lms_tl {2} +} +\prop_gput:Nnn \g__tilings_cluster_lms_rule_prop {T} +{ + [s {H{\__tilings_tile_label:0}{}}] +} +\prop_gput:Nnn \g__tilings_cluster_lms_rule_prop {H} +{ + [s {r{-60}} {T{\__tilings_tile_label:0}{}}] + [{ {HTa{A1}} {\__tilings_tile_label:1} {\__tilings_tile_label:0} }] + [{ {HTa{A2}} {\__tilings_tile_label:2} {\__tilings_tile_label:0} }] + [{ {HT{B1}b} {\__tilings_tile_label:3} {\__tilings_tile_label:0} }] + [{ {PHb{B2}} {\__tilings_tile_label:4} {\__tilings_tile_label:1} }] + [{ {PHb{B2}} {\__tilings_tile_label:5} {\__tilings_tile_label:2} }] + [{ {PHAa} {\__tilings_tile_label:6} {\__tilings_tile_label:3} }] + [{ {FHb{B1}} {\__tilings_tile_label:7} {\__tilings_tile_label:1} }] + [{ {FHb{B1}} {\__tilings_tile_label:8} {\__tilings_tile_label:2} }] + [{ {FHb{B2}} {\__tilings_tile_label:9} {\__tilings_tile_label:3} }] +} +\prop_gput:Nnn \g__tilings_cluster_lms_rule_prop {P} +{ + [s {r{60}} {P{\__tilings_tile_label:0}{}}] + [{ {HPaA} {\__tilings_tile_label:1} {\__tilings_tile_label:0} }] + [{ {HP{B2}b} {\__tilings_tile_label:2} {\__tilings_tile_label:0} }] + [{ {FHb{B2}} {\__tilings_tile_label:3} {\__tilings_tile_label:1} }] + [{ {FHb{B1}} {\__tilings_tile_label:4} {\__tilings_tile_label:2} }] +} +\prop_gput:Nnn \g__tilings_cluster_lms_rule_prop {F} +{ + [s {r{60}} {P{\__tilings_tile_label:0}{}}] + [{ {HPaA} {\__tilings_tile_label:1} {\__tilings_tile_label:0} }] + [{ {HP{B2}b} {\__tilings_tile_label:2} {\__tilings_tile_label:0} }] + [{ {FHb{B2}} {\__tilings_tile_label:3} {\__tilings_tile_label:1} }] + [{ {FHb{B1}} {\__tilings_tile_label:4} {\__tilings_tile_label:2} }] + [{ {FHb{B1}} {\__tilings_tile_label:5} {\__tilings_tile_label:1} }] +} +\prop_gput:Nnn \g__tilings_cluster_lms_rule_prop {TH{A1}a} {} +\prop_gput:Nnn \g__tilings_cluster_lms_rule_prop {TH{A2}a} {} +\prop_gput:Nnn \g__tilings_cluster_lms_rule_prop {THb{B1}} {} +\prop_gput:Nnn \g__tilings_cluster_lms_rule_prop {THb{B2}} {} +\prop_gput:Nnn \g__tilings_cluster_lms_rule_prop {HTa{A1}} {} +\prop_gput:Nnn \g__tilings_cluster_lms_rule_prop {HTa{A2}} {} +\prop_gput:Nnn \g__tilings_cluster_lms_rule_prop {HT{B1}b} {} +\prop_gput:Nnn \g__tilings_cluster_lms_rule_prop {HT{B2}b} {} +\prop_gput:Nnn \g__tilings_cluster_lms_rule_prop {HPaA} {} +\prop_gput:Nnn \g__tilings_cluster_lms_rule_prop {HP{B1}b} {} +\prop_gput:Nnn \g__tilings_cluster_lms_rule_prop {HP{B2}b} {} +\prop_gput:Nnn \g__tilings_cluster_lms_rule_prop {HF{B1}b} {} +\prop_gput:Nnn \g__tilings_cluster_lms_rule_prop {HF{B2}b} {} +\prop_gput:Nnn \g__tilings_cluster_lms_rule_prop {PHAa} {} +\prop_gput:Nnn \g__tilings_cluster_lms_rule_prop {PHb{B1}} {} +\prop_gput:Nnn \g__tilings_cluster_lms_rule_prop {PHb{B2}} {} +\prop_gput:Nnn \g__tilings_cluster_lms_rule_prop {PF{11}{11}} {} +\prop_gput:Nnn \g__tilings_cluster_lms_rule_prop {PF{12}{11}} {} +\prop_gput:Nnn \g__tilings_cluster_lms_rule_prop {PF{11}{12}} {} +\prop_gput:Nnn \g__tilings_cluster_lms_rule_prop {PF{12}{12}} {} +\prop_gput:Nnn \g__tilings_cluster_lms_rule_prop {FHb{B1}} {} +\prop_gput:Nnn \g__tilings_cluster_lms_rule_prop {FHb{B2}} {} +\prop_gput:Nnn \g__tilings_cluster_lms_rule_prop {FP{11}{11}} {} +\prop_gput:Nnn \g__tilings_cluster_lms_rule_prop {FP{12}{11}} {} +\prop_gput:Nnn \g__tilings_cluster_lms_rule_prop {FP{11}{12}} {} +\prop_gput:Nnn \g__tilings_cluster_lms_rule_prop {FP{12}{12}} {} +\prop_gput:Nnn \g__tilings_cluster_lms_rule_prop {FFfF} {} +\prop_gput:Nnn \g__tilings_cluster_lms_rule_prop {FFFf} {} +\prop_gput:Nnn \g__tilings_cluster_lms_rule_prop {FF{11}{11}} {} +\prop_gput:Nnn \g__tilings_cluster_lms_rule_prop {FF{12}{11}} {} +\prop_gput:Nnn \g__tilings_cluster_lms_rule_prop {FF{11}{12}} {} +\prop_gput:Nnn \g__tilings_cluster_lms_rule_prop {FF{12}{12}} {} +\cs_new_nopar:cpn {__tilings_T{A1}_creator:nnnnn} #1#2#3#4#5 +{ + \prop_gput:Nnn \g__tilings_cluster_lms_rule_prop {T#1{A1}#2} + { + [{ {H#3{B1}#4} {\__tilings_tile_label:0} {\__tilings_adjoint_label:#5} }] + } +} +\cs_new_nopar:cpn {__tilings_T{A2}_creator:nnnnn} #1#2#3#4#5 +{ + \prop_gput:Nnn \g__tilings_cluster_lms_rule_prop {T#1{A2}#2} + { + [{ {H#3{B2}#4} {\__tilings_tile_label:0} {\__tilings_adjoint_label:#5} }] + } +} +\cs_new_nopar:cpn {__tilings_Tb_creator:nnnnn} #1#2#3#4#5 +{ + \prop_gput:Nnn \g__tilings_cluster_lms_rule_prop {T#1b#2} + { + [{ {H#3a#4} {\__tilings_tile_label:0} {\__tilings_adjoint_label:#5} }] + } +} + +\cs_new_nopar:cpn {__tilings_H{B1}_creator:nnnnn} #1#2#3#4#5 +{ + \prop_gput:Nnn \g__tilings_cluster_lms_rule_prop {H#1{B1}#2} + { + [{ {P#3A#4} {\__tilings_tile_label:4} {\__tilings_adjoint_label:#5} }] + + [{ {HP{B2}b} {\__tilings_tile_label:1} {\__tilings_tile_label:4} }] + [{ {TH{A1}a} {\__tilings_tile_label:0} {\__tilings_tile_label:1} }] + + [{ {HTa{A2}} {\__tilings_tile_label:2} {\__tilings_tile_label:0} }] + [{ {PHb{B2}} {\__tilings_tile_label:5} {\__tilings_tile_label:2} }] + + [{ {HT{B1}b} {\__tilings_tile_label:3} {\__tilings_tile_label:0} }] + [{ {PHAa} {\__tilings_tile_label:6} {\__tilings_tile_label:3} }] + + [{ {FHb{B1}} {\__tilings_tile_label:7} {\__tilings_tile_label:1} }] + [{ {FHb{B1}} {\__tilings_tile_label:8} {\__tilings_tile_label:2} }] + [{ {FHb{B2}} {\__tilings_tile_label:9} {\__tilings_tile_label:3} }] + } +} + +\cs_new_nopar:cpn {__tilings_H{B2}_creator:nnnnn} #1#2#3#4#5 +{ + \prop_gput:Nnn \g__tilings_cluster_lms_rule_prop {H#1{B2}#2} + { + [{ {P#3A#4} {\__tilings_tile_label:5} {\__tilings_adjoint_label:#5} }] + + [{ {HP{B2}b} {\__tilings_tile_label:2} {\__tilings_tile_label:5} }] + [{ {TH{A2}a} {\__tilings_tile_label:0} {\__tilings_tile_label:2} }] + + [{ {HTa{A1}} {\__tilings_tile_label:1} {\__tilings_tile_label:0} }] + [{ {PHb{B2}} {\__tilings_tile_label:4} {\__tilings_tile_label:1} }] + + [{ {HT{B1}b} {\__tilings_tile_label:3} {\__tilings_tile_label:0} }] + [{ {PHAa} {\__tilings_tile_label:6} {\__tilings_tile_label:3} }] + + [{ {FHb{B1}} {\__tilings_tile_label:7} {\__tilings_tile_label:1} }] + [{ {FHb{B1}} {\__tilings_tile_label:8} {\__tilings_tile_label:2} }] + [{ {FHb{B2}} {\__tilings_tile_label:9} {\__tilings_tile_label:3} }] + } +} + +\cs_new_nopar:cpn {__tilings_Ha_creator:nnnnn} #1#2#3#4#5 +{ + \prop_gput:Nnn \g__tilings_cluster_lms_rule_prop {H#1a#2} + { + [{ {P#3b#4} {\__tilings_tile_label:6} {\__tilings_adjoint_label:#5} }] + + [{ {HPaA} {\__tilings_tile_label:3} {\__tilings_tile_label:6} }] + [{ {THb{B1}} {\__tilings_tile_label:0} {\__tilings_tile_label:3} }] + + [{ {HTa{A1}} {\__tilings_tile_label:1} {\__tilings_tile_label:0} }] + [{ {PHb{B2}} {\__tilings_tile_label:4} {\__tilings_tile_label:1} }] + + [{ {HTa{A2}} {\__tilings_tile_label:2} {\__tilings_tile_label:0} }] + [{ {PHb{B2}} {\__tilings_tile_label:5} {\__tilings_tile_label:2} }] + + [{ {FHb{B1}} {\__tilings_tile_label:7} {\__tilings_tile_label:1} }] + [{ {FHb{B1}} {\__tilings_tile_label:8} {\__tilings_tile_label:2} }] + [{ {FHb{B2}} {\__tilings_tile_label:9} {\__tilings_tile_label:3} }] + } +} + +\cs_new_nopar:cpn {__tilings_PA_creator:nnnnn} #1#2#3#4#5 +{ + \prop_gput:Nnn \g__tilings_cluster_lms_rule_prop {P#1A#2} + { + [{ {H#3{B1}#4} {\__tilings_tile_label:1} {\__tilings_adjoint_label:#5} }] + [{ {PHAa} {\__tilings_tile_label:0} {\__tilings_tile_label:1} }] + [{ {HP{B2}b} {\__tilings_tile_label:2} {\__tilings_tile_label:0} }] + + [{ {FHb{B2}} {\__tilings_tile_label:3} {\__tilings_tile_label:1} }] + [{ {FHb{B1}} {\__tilings_tile_label:4} {\__tilings_tile_label:2} }] + } +} + +\cs_new_nopar:cpn {__tilings_Pb_creator:nnnnn} #1#2#3#4#5 +{ + \prop_gput:Nnn \g__tilings_cluster_lms_rule_prop {P#1b#2} + { + [{ {H#3a#4} {\__tilings_tile_label:2} {\__tilings_adjoint_label:#5} }] + [{ {PHb{B2}} {\__tilings_tile_label:0}{\__tilings_tile_label:2} }] + [{ {HPaA} {\__tilings_tile_label:1} {\__tilings_tile_label:0} }] + + [{ {FHb{B2}} {\__tilings_tile_label:3} {\__tilings_tile_label:1} }] + [{ {FHb{B1}} {\__tilings_tile_label:4} {\__tilings_tile_label:2} }] + } +} + +\cs_new_nopar:cpn {__tilings_Fb_creator:nnnnn} #1#2#3#4#5 +{ + \prop_gput:Nnn \g__tilings_cluster_lms_rule_prop {F#1b#2} + { + [{ {H#3a#4} {\__tilings_tile_label:2} {\__tilings_adjoint_label:#5} }] + [{ {PHb{B2}} {\__tilings_tile_label:0}{\__tilings_tile_label:2} }] + [{ {HPaA} {\__tilings_tile_label:1} {\__tilings_tile_label:0} }] + + [{ {FHb{B2}} {\__tilings_tile_label:3} {\__tilings_tile_label:1} }] + [{ {FHb{B1}} {\__tilings_tile_label:4} {\__tilings_tile_label:2} }] + [{ {FHb{B1}} {\__tilings_tile_label:5} {\__tilings_tile_label:1} }] + } +} +\clist_map_inline:nn +{ + TH{{A1}}a HP{{{B1}}}b06, + TH{{A2}}a HP{{{B2}}}b06, + THb{{B1}} HPaA04, + THb{{B2}} HPaA05, + PHAa HP{{{B1}}}b16, + PHb{{B1}} HPaA24, + PHb{{B2}} HPaA25, + FHb{{B1}} HPaA24, + FHb{{B2}} HPaA25, +} +{ + \tl_clear:N \l__tilings_tmpa_tl + \tl_put_right:Nn \l__tilings_tmpa_tl { \use:c } + \tl_put_right:Nx \l__tilings_tmpa_tl + { + {__tilings_ \tl_item:nn {#1}{2}\tl_item:nn {#1}{4} _creator:nnnnn} + {\tl_item:nn {#1}{1}}{\tl_item:nn{#1}{3}} + \tl_item:nn {#1}{5}\tl_item:nn{#1}{7} + \tl_item:nn {#1}{9} + } + \tl_use:N \l__tilings_tmpa_tl + \tl_clear:N \l__tilings_tmpa_tl + \tl_put_right:Nn \l__tilings_tmpa_tl { \use:c } + \tl_put_right:Nx \l__tilings_tmpa_tl + { + {__tilings_ \tl_item:nn {#1}{1}\tl_item:nn {#1}{3} _creator:nnnnn} + {\tl_item:nn {#1}{2}}{\tl_item:nn{#1}{4}} + \tl_item:nn {#1}{6}\tl_item:nn{#1}{8} + \tl_item:nn {#1}{10} + } + \tl_use:N \l__tilings_tmpa_tl +} + +\prop_new:N \g__tilings_cluster_lms_action_prop +\prop_gput:Nnn \g__tilings_drawables_lms_prop {cluster} {HTPF} +\prop_gput:Nnn \g__tilings_cluster_lms_action_prop {r} +{ + \pgftransformrotate{\l__tilings_parameters_lms_tl} +} +\prop_gput:Nnn \g__tilings_cluster_lms_action_prop {x} +{ + \pgftransformxshift{ + \fp_to_dim:n + {.5 * (\l__tilings_parameters_lms_tl) * \l__tilings_step_dim} + } +} +\prop_gput:Nnn \g__tilings_cluster_lms_action_prop {y} +{ + \pgftransformyshift{ + \fp_to_dim:n + {.5 * sqrt(3) * (\l__tilings_parameters_lms_tl) * \l__tilings_step_dim} + } +} + +\prop_gput:Nnn \g__tilings_cluster_lms_action_prop {s} +{ + \fp_set:Nn \l__tilings_tmpa_fp { + \l__tilings_step_dim + / + \c__tilings_phi_fp + / + \c__tilings_phi_fp + } + \dim_set:Nn \l__tilings_step_dim {\fp_to_dim:N \l__tilings_tmpa_fp} +} +\clist_map_inline:nn {H,T,P,F} +{ + + \prop_gput:Nnn \g__tilings_cluster_lms_action_prop {#1} + { + \__tilings_tikz_keys_get:Nn \l__tilings_tmpa_tl {cluster~type} + \tl_set:Nx \l__tilings_tmpb_tl {\tl_item:Nn \l__tilings_parameters_lms_tl {1}} + \__tilings_place_cluster_tile_as_pic:VnVnnn + \l__tilings_tmpa_tl {#1} \l__tilings_tmpb_tl {}{}{} + } +} +\cs_new_protected_nopar:Npn \__tilings_place_cluster_tile_as_pic_aux:nnnn #1#2#3#4 +{ + \__tilings_tikz_keys_get:Nn \l__tilings_tmpa_tl {cluster~type} + \tl_set:Nx \l__tilings_tmpb_tl {\__tilings_tile_label:} + \tl_set:Nx \l__tilings_tmpc_tl {\__tilings_adjoint_label:} + \__tilings_place_cluster_tile_as_pic:VnVVnn + \l__tilings_tmpa_tl {#1} \l__tilings_tmpb_tl \l__tilings_tmpc_tl {#4}{#3} +} + +\clist_map_inline:nn { + TH{A1}a, + TH{A2}a, + THb{B1}, + THb{B2}, + HTa{A1}, + HTa{A2}, + HT{B1}b, + HT{B2}b, + HPaA, + HP{B1}b, + HP{B2}b, + HF{B1}b, + HF{B2}b, + PHAa, + PHb{B1}, + PHb{B2}, + PF{11}{11}, + PF{12}{11}, + PF{11}{12}, + PF{12}{12}, + FHb{B1}, + FHb{B2}, + FP{11}{11}, + FP{12}{11}, + FP{11}{12}, + FP{12}{12}, + FFfF, + FFFf, + FF{11}{11}, + FF{12}{11}, + FF{11}{12}, + FF{12}{12} +} +{ + \prop_gput:Nnn \g__tilings_cluster_lms_action_prop {#1} + { + \__tilings_place_cluster_tile_as_pic_aux:nnnn #1 + } +} + +\ExplSyntaxOff +%% +%% Copyright (C) 2014-2023 by Andrew Stacey <loopspace@mathforge.org> +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License (LPPL), either +%% version 1.3c of this license or (at your option) any later +%% version. The latest version of this license is in the file: +%% +%% http://www.latex-project.org/lppl.txt +%% +%% This work is "maintained" (as per LPPL maintenance status) by +%% Andrew Stacey. +%% +%% This work consists of the files penrose_code.dtx +%% penrose.tex +%% and the derived files penrose.ins +%% penrose_code.pdf +%% penrose.pdf +%% tikzlibrarytilings.code.tex +%% tikzlibrarytilings.penrose.code.tex +%% tikzlibrarytilings.polykite.code.tex +%% tikzlibrarypenrose.code.tex +%% README.txt +%% +%% +%% End of file `tikzlibrarytilings.polykite.code.tex'. |