%% %% This is file `tikzlibrarytilings.penrose.code.tex', %% generated with the docstrip utility. %% %% The original source files were: %% %% tilings_code.dtx (with options: `penrose') %% ---------------------------------------------------------------- %% 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.penrose.code.tex} [2023/06/01 v2.0 TikZ pics for Penrose tiles] \DefineTile{thin rhombus}{a A B b} { {0 , 0} {cosd(18) , sind(18)} {2*cosd(18) , 0} {cosd(18) , -sind(18)} } \DefineTile{thick rhombus}{B a A b} { {0 , 0} {cosd(36) , sind(36)} {2*cosd(36) , 0} {cosd(36) , -sind(36)} } \DefineTile{dart}{c a A C} { {0 , 0} {2*sind(18)*cosd(108) , 2*sind(18)*sind(108)} {2*sind(18) , 0} {2*sind(18)*cosd(108) , -2*sind(18)*sind(108)} } \DefineTile{kite}{a c C A} { {0 , 0} {cosd(36) , sind(36)} {1 , 0} {cosd(36) , -sind(36)} } \DefineTile{golden triangle}{a c b} { {0 , 0} {cosd(18) , sind(18)} {cosd(18) , -sind(18)} } \DefineTile {reverse golden triangle}{B C A} { {0 , 0} {cosd(18) , sind(18)} {cosd(18) , -sind(18)} } \DefineTile {golden gnomon}{C b A} { {0 , 0} {cosd(36) , sind(36)} {2*cosd(36) , 0} } \DefineTile {reverse golden gnomon}{a B c} { {0 , 0} {2*cosd(36) , 0} {cosd(36) , -sind(36)} } \DefineTile {pentagon 5}{a a a a a} { {0 , 0} {cosd(108) , sind(108)} {1+cosd(72)+cosd(144) , sind(72)+sind(144)} {1+cosd(72) , sind(72)} {1 , 0} } \DefineTile {pentagon 3}{A b a a b} { {0 , 0} {cosd(108) , sind(108)} {1+cosd(72)+cosd(144) , sind(72)+sind(144)} {1+cosd(72) , sind(72)} {1 , 0} } \DefineTile {pentagon 2}{d A e c A} { {0 , 0} {cosd(108) , sind(108)} {1+cosd(72)+cosd(144) , sind(72)+sind(144)} {1+cosd(72) , sind(72)} {1 , 0} } \DefineTile {pentagram}{C E C E C E C E C E} { {1 , 0} {1-cosd(36) , -sind(36)} {1-cosd(36)-cosd(108) , -sind(36)-sind(108)} {cosd(108) , -sind(108)} {-1+3*cosd(108)+cosd(36) , -sind(36)-sind(108)} {-1+2*cosd(108)+cosd(36) , -sind(36)} {-1+2*cosd(108) , 0} {2*cosd(108) , 0} {cosd(108) , sind(108)} {0 , 0} } \DefineTile {boat}{C E C E B D B} { {-1+2*cosd(108) , 0} {2*cosd(108) , 0} {cosd(108) , sind(108)} {0 , 0} {1 , 0} {1-cosd(36) , -sind(36)} {-1+2*cosd(108)+cosd(36) , -sind(36)} } \DefineTile {diamond}{D B B D} { {0 , 0} {cosd(18) , sind(18)} {2*cosd(18) , 0} {cosd(18) , -sind(18)} } \tikzset{ every thin rhombus before path/.code={ \path[every circle arc/.try] (-edge a end) circle[radius=1/4]; \path[every long arc/.try] (-edge b start) circle[radius=1/4]; }, every thick rhombus before path/.code={ \path[every circle arc/.try] (-edge a end) circle[radius=1/4]; \path[every long arc/.try] (-edge B start) circle[radius=3/4]; }, every kite before path/.code={ \path[every circle arc/.try] (-edge a start) circle[radius=2/(sqrt(5)+1)]; \path[every long arc/.try] (-edge c end) circle[radius=2/(3+sqrt(5))]; }, every dart before path/.code={ \path[every circle arc/.try] (-edge a end) circle[radius=1 - 2/(sqrt(5)+1)]; \path[every long arc/.try] (-edge c start) circle[radius=2/(sqrt(5)+1) - 2/(3+sqrt(5))]; } } \BakeTile {thin rhombus} \BakeTile {thick rhombus} \BakeTile {dart} \BakeTile {kite} \BakeTile {golden triangle} \BakeTile {reverse golden triangle} \BakeTile {golden gnomon} \BakeTile {reverse golden gnomon} \BakeTile {pentagon 5} \BakeTile {pentagon 3} \BakeTile {pentagon 2} \BakeTile {pentagram} \BakeTile {boat} \BakeTile {diamond} \ExplSyntaxOn \prop_new:N \g__tilings_rhombus_lms_rule_prop \prop_gput:Nnn \g__tilings_rhombus_lms_rule_prop {T} {[f*sT][f>g]} \prop_gput:Nnn \g__tilings_rhombus_lms_rule_prop {t} {[f_st][f>G]} \prop_gput:Nnn \g__tilings_rhombus_lms_rule_prop {G} {[f+sG][sf>g][sf*sT]} \prop_gput:Nnn \g__tilings_rhombus_lms_rule_prop {g} {[f-sg][sf>G][sf_st]} \prop_new:N \g__tilings_kite_lms_rule_prop \prop_gput:Nnn \g__tilings_kite_lms_rule_prop {T} {[f*sT][f>st][+sg]} \prop_gput:Nnn \g__tilings_kite_lms_rule_prop {t} {[f_st][f>sT][-sG]} \prop_gput:Nnn \g__tilings_kite_lms_rule_prop {G} {[f*+sG][sT]} \prop_gput:Nnn \g__tilings_kite_lms_rule_prop {g} {[f-_sg][st]} \prop_new:N \g__tilings_pentagon_lms_rule_prop \prop_gput:Nnn \g__tilings_pentagon_lms_rule_prop {P} {[s>P][1sF+Q][1+sF+Q][1*sF+Q][1-sF+Q][1_sF+Q]} % pentagon 5 \prop_gput:Nnn \g__tilings_pentagon_lms_rule_prop {Q} {[s>P][1+sFR][1*sF*R][1-sF+Q][1_sF+Q][1sF+Q][->fsD]} % pentagon 3 \prop_gput:Nnn \g__tilings_pentagon_lms_rule_prop {R} {[s>P][1-sF+Q][1+sF*R][1*sFR][1_sF*R][1sFR][_>fsD][>fsD]} % pentagon 2 \prop_gput:Nnn \g__tilings_pentagon_lms_rule_prop {G} { [s>G] [se[>d+R][e1B]] [+se[>d+R][e1B]] [-se[>d+R][e1B]] [*se[>d+R][e1B]] [_se[>d+R][e1B]] } % pentagram \prop_gput:Nnn \g__tilings_pentagon_lms_rule_prop {B} { [s>G] [se[>d+R][e1B]] [+se[>d+R][e1B]] [-se[>d+R][e1B]] } % boat \prop_gput:Nnn \g__tilings_pentagon_lms_rule_prop {D} {[s>d+R][s>eG][se1B]} % diamond \prop_gset_eq:NN \g__tilings_rtriangle_lms_rule_prop \g__tilings_rhombus_lms_rule_prop \prop_gset_eq:NN \g__tilings_ktriangle_lms_rule_prop \g__tilings_kite_lms_rule_prop \prop_gput:Nnn \g__tilings_drawables_lms_prop {rhombus} {TG} \prop_gput:Nnn \g__tilings_drawables_lms_prop {kite} {Tg} \prop_gput:Nnn \g__tilings_drawables_lms_prop {rtriangle} {TtGg} \prop_gput:Nnn \g__tilings_drawables_lms_prop {ktriangle} {TtGg} \prop_gput:Nnn \g__tilings_drawables_lms_prop {pentagon} {PQRGBD} \prop_new:N \g__tilings_rhombus_lms_action_prop \prop_new:N \g__tilings_kite_lms_action_prop \prop_new:N \g__tilings_rtriangle_lms_action_prop \prop_new:N \g__tilings_ktriangle_lms_action_prop \prop_new:N \g__tilings_pentagon_lms_action_prop \prop_gput:Nnn \g__tilings_rhombus_lms_action_prop {+} {\pgftransformrotate{144}} \prop_gput:Nnn \g__tilings_rhombus_lms_action_prop {*} {\pgftransformrotate{108}} \prop_gput:Nnn \g__tilings_rhombus_lms_action_prop {-} {\pgftransformrotate{216}} \prop_gput:Nnn \g__tilings_rhombus_lms_action_prop {_} {\pgftransformrotate{252}} \prop_gput:Nnn \g__tilings_rhombus_lms_action_prop {>} {\pgftransformrotate{180}} \prop_gput:Nnn \g__tilings_rhombus_lms_action_prop {s} { \fp_set:Nn \l__tilings_tmpa_fp { 2 * sind(18) * \l__tilings_step_dim } \dim_set:Nn \l__tilings_step_dim {\fp_to_dim:N \l__tilings_tmpa_fp} } \prop_gset_eq:NN \g__tilings_rtriangle_lms_action_prop \g__tilings_rhombus_lms_action_prop \prop_gput:Nnn \g__tilings_rhombus_lms_action_prop {T} { \group_begin: \int_gincr:N \g__tilings_tile_int \pgftransformrotate{198} \fp_set:Nn \l__tilings_tmpa_fp {\l__tilings_step_dim*2*cosd(18)} \pgftransformxshift{-\fp_to_dim:N \l__tilings_tmpa_fp} \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~ thin~ rhombus/.try, tile~ \int_use:N \g__tilings_tile_int/.try, tile/.try/.expand~ once=\l__tilings_tmpc_tl ]{thin~rhombus} \group_end: } \prop_gput:Nnn \g__tilings_rhombus_lms_action_prop {G} { \group_begin: \int_gincr:N \g__tilings_tile_int \fp_set:Nn \l__tilings_tmpa_fp {\l__tilings_step_dim/(1cm)/(2*cosd(36))} \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~ thick~ rhombus/.try, tile~ \int_use:N \g__tilings_tile_int/.try, tile/.try/.expand~ once=\l__tilings_tmpc_tl ]{thick~rhombus} \group_end: } \prop_gput:Nnn \g__tilings_kite_lms_action_prop {+} {\pgftransformrotate{36}} \prop_gput:Nnn \g__tilings_kite_lms_action_prop {*} {\pgftransformrotate{108}} \prop_gput:Nnn \g__tilings_kite_lms_action_prop {-} {\pgftransformrotate{-36}} \prop_gput:Nnn \g__tilings_kite_lms_action_prop {_} {\pgftransformrotate{-108}} \prop_gput:Nnn \g__tilings_kite_lms_action_prop {>} {\pgftransformrotate{180}} \prop_gput:Nnn \g__tilings_kite_lms_action_prop {s} { \fp_set:Nn \l__tilings_tmpa_fp { 2 * sind(18) * \l__tilings_step_dim } \dim_set:Nn \l__tilings_step_dim {\fp_to_dim:N \l__tilings_tmpa_fp} } \prop_gset_eq:NN \g__tilings_ktriangle_lms_action_prop \g__tilings_kite_lms_action_prop \prop_gput:Nnn \g__tilings_kite_lms_action_prop {T} { \group_begin: \int_gincr:N \g__tilings_tile_int \pgftransformrotate{36} \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~ kite/.try, tile~ \int_use:N \g__tilings_tile_int/.try, tile/.try/.expand~ once=\l__tilings_tmpc_tl ]{kite} \group_end: } \prop_gput:Nnn \g__tilings_kite_lms_action_prop {g} { \group_begin: \int_gincr:N \g__tilings_tile_int \pgftransformrotate{144} \pgftransformxshift{-\l__tilings_step_dim * 2 * sin(18)} \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~ dart/.try, tile~ \int_use:N \g__tilings_tile_int/.try, tile/.try/.expand~ once=\l__tilings_tmpc_tl ]{dart} \group_end: } \prop_gput:Nnn \g__tilings_rtriangle_lms_action_prop {T} { \group_begin: \int_gincr:N \g__tilings_tile_int \pgftransformrotate{18} \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~ reverse~ golden~ triangle/.try, tile~ \int_use:N \g__tilings_tile_int/.try, tile/.try/.expand~ once=\l__tilings_tmpc_tl ]{reverse~ golden~ triangle} \group_end: } \prop_gput:Nnn \g__tilings_rtriangle_lms_action_prop {t} { \group_begin: \int_gincr:N \g__tilings_tile_int \pgftransformrotate{-18} \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} } \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~ golden~ triangle/.try, tile~ \int_use:N \g__tilings_tile_int/.try, tile/.try/.expand~ once=\l__tilings_tmpc_tl ]{golden~ triangle} \group_end: } \prop_gput:Nnn \g__tilings_rtriangle_lms_action_prop {G} { \group_begin: \int_gincr:N \g__tilings_tile_int \pgftransformrotate{180} \pgftransformxshift{-\l__tilings_step_dim} \fp_set:Nn \l__tilings_tmpa_fp {\l__tilings_step_dim/(1cm)/(2*cosd(36))} \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~ reverse~ golden~ gnomon/.try, tile~ \int_use:N \g__tilings_tile_int/.try, tile/.try/.expand~ once=\l__tilings_tmpc_tl ]{reverse~ golden~ gnomon} \group_end: } \prop_gput:Nnn \g__tilings_rtriangle_lms_action_prop {g} { \group_begin: \int_gincr:N \g__tilings_tile_int \pgftransformrotate{180} \pgftransformxshift{-\l__tilings_step_dim} \fp_set:Nn \l__tilings_tmpa_fp {\l__tilings_step_dim/(1cm)/(2*cosd(36))} \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~ golden~ gnomon/.try, tile~ \int_use:N \g__tilings_tile_int/.try, tile/.try/.expand~ once=\l__tilings_tmpc_tl ]{golden~ gnomon} \group_end: } \prop_gput:Nnn \g__tilings_ktriangle_lms_action_prop {T} { \group_begin: \int_gincr:N \g__tilings_tile_int \pgftransformrotate{18} \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~ reverse~ golden~ triangle/.try, tile~ \int_use:N \g__tilings_tile_int/.try, tile/.try/.expand~ once=\l__tilings_tmpc_tl ]{reverse~ golden~ triangle} \group_end: } \prop_gput:Nnn \g__tilings_ktriangle_lms_action_prop {t} { \group_begin: \int_gincr:N \g__tilings_tile_int \pgftransformrotate{-18} \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~ golden~ triangle/.try, tile~ \int_use:N \g__tilings_tile_int/.try, tile/.try/.expand~ once=\l__tilings_tmpc_tl ]{golden~ triangle} \group_end: } \prop_gput:Nnn \g__tilings_ktriangle_lms_action_prop {G} { \group_begin: \int_gincr:N \g__tilings_tile_int \pgftransformrotate{180} \pgftransformxshift{-\l__tilings_step_dim} \fp_set:Nn \l__tilings_tmpa_fp {\l__tilings_step_dim/(1cm)/(2*cosd(36))} \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~ reverse~ golden~ gnomon/.try, tile~ \int_use:N \g__tilings_tile_int/.try, tile/.try/.expand~ once=\l__tilings_tmpc_tl ]{reverse~ golden~ gnomon} \group_end: } \prop_gput:Nnn \g__tilings_ktriangle_lms_action_prop {g} { \group_begin: \int_gincr:N \g__tilings_tile_int \pgftransformrotate{180} \pgftransformxshift{-\l__tilings_step_dim} \fp_set:Nn \l__tilings_tmpa_fp {\l__tilings_step_dim/(1cm)/(2*cosd(36))} \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~ golden~ gnomon/.try, tile~ \int_use:N \g__tilings_tile_int/.try, tile/.try/.expand~ once=\l__tilings_tmpc_tl ]{golden~ gnomon} \group_end: } \int_new:N \l__tilings_pentagon_parity_int \seq_new:N \l__tilings_pentagon_parity_seq \seq_set_from_clist:Nn \l__tilings_pentagon_parity_seq {odd,even} \prop_gput:Nnn \g__tilings_pentagon_lms_action_prop {1} { \int_set:Nn \l__tilings_pentagon_parity_int {3 - \l__tilings_pentagon_parity_int} } \tikzset{ every~ pentagon~ decomposition/.code={% \int_set:Nn \l__tilings_pentagon_parity_int {2} } } \prop_gput:Nnn \g__tilings_pentagon_lms_action_prop {+} {\pgftransformrotate{72}} \prop_gput:Nnn \g__tilings_pentagon_lms_action_prop {*} {\pgftransformrotate{144}} \prop_gput:Nnn \g__tilings_pentagon_lms_action_prop {-} {\pgftransformrotate{288}} \prop_gput:Nnn \g__tilings_pentagon_lms_action_prop {_} {\pgftransformrotate{216}} \prop_gput:Nnn \g__tilings_pentagon_lms_action_prop {>} {\pgftransformrotate{180}} \prop_gput:Nnn \g__tilings_pentagon_lms_action_prop {|} {\pgftransformxscale{-1}} \prop_gput:Nnn \g__tilings_pentagon_lms_action_prop {s} { \fp_set:Nn \l__tilings_tmpa_fp { 1/(2 + 2 * cosd(72) ) * \l__tilings_step_dim } \dim_set:Nn \l__tilings_step_dim {\fp_to_dim:N \l__tilings_tmpa_fp} } \prop_gput:Nnn \g__tilings_pentagon_lms_action_prop {f} { \fp_set:Nn \l__tilings_tmpa_fp { tand(54)/2 * \l__tilings_step_dim } \pgftransformyshift{\fp_to_dim:N \l__tilings_tmpa_fp} } \prop_gput:Nnn \g__tilings_pentagon_lms_action_prop {F} { \fp_set:Nn \l__tilings_tmpa_fp { tand(54) * \l__tilings_step_dim } \pgftransformyshift{\fp_to_dim:N \l__tilings_tmpa_fp} } \prop_gput:Nnn \g__tilings_pentagon_lms_action_prop {d} { \fp_set:Nn \l__tilings_tmpa_fp { (tand(54)/2 - tand(72)/2 + sind(36) ) * \l__tilings_step_dim } \pgftransformyshift{\fp_to_dim:N \l__tilings_tmpa_fp} } \prop_gput:Nnn \g__tilings_pentagon_lms_action_prop {e} { \fp_set:Nn \l__tilings_tmpa_fp { tand(54) * cosd(36) * \l__tilings_step_dim } \pgftransformyshift{\fp_to_dim:N \l__tilings_tmpa_fp} } \prop_gput:Nnn \g__tilings_pentagon_lms_action_prop {P} { \group_begin: \int_gincr:N \g__tilings_tile_int \fp_set:Nn \l__tilings_tmpa_fp {\l__tilings_step_dim/2} \pgftransformxshift{-\fp_to_dim:N \l__tilings_tmpa_fp} \fp_set:Nn \l__tilings_tmpa_fp {\l__tilings_step_dim*tand(54)/2} \pgftransformyshift{-\fp_to_dim:N \l__tilings_tmpa_fp} \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~ pentagon/.try, every~ \seq_item:Nn \l__tilings_pentagon_parity_seq {\l__tilings_pentagon_parity_int} \space pentagon/.try, every~ pentagon~ 5/.try, tile~ \int_use:N \g__tilings_tile_int/.try, tile/.try/.expand~ once=\l__tilings_tmpc_tl ]{pentagon~5} \group_end: } \prop_gput:Nnn \g__tilings_pentagon_lms_action_prop {Q} { \group_begin: \int_gincr:N \g__tilings_tile_int \fp_set:Nn \l__tilings_tmpa_fp {\l__tilings_step_dim/2} \pgftransformxshift{-\fp_to_dim:N \l__tilings_tmpa_fp} \fp_set:Nn \l__tilings_tmpa_fp {\l__tilings_step_dim*tand(54)/2} \pgftransformyshift{-\fp_to_dim:N \l__tilings_tmpa_fp} \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~ pentagon/.try, every~ \seq_item:Nn \l__tilings_pentagon_parity_seq {\l__tilings_pentagon_parity_int} \space pentagon/.try, every~ pentagon~ 3/.try, tile~ \int_use:N \g__tilings_tile_int/.try, tile/.try/.expand~ once=\l__tilings_tmpc_tl ]{pentagon~3} \group_end: } \prop_gput:Nnn \g__tilings_pentagon_lms_action_prop {R} { \group_begin: \int_gincr:N \g__tilings_tile_int \fp_set:Nn \l__tilings_tmpa_fp {\l__tilings_step_dim/2} \pgftransformxshift{-\fp_to_dim:N \l__tilings_tmpa_fp} \fp_set:Nn \l__tilings_tmpa_fp {\l__tilings_step_dim*tand(54)/2} \pgftransformyshift{-\fp_to_dim:N \l__tilings_tmpa_fp} \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~ pentagon/.try, every~ \seq_item:Nn \l__tilings_pentagon_parity_seq {\l__tilings_pentagon_parity_int} \space pentagon/.try, every~ pentagon~ 2/.try, tile~ \int_use:N \g__tilings_tile_int/.try, tile/.try/.expand~ once=\l__tilings_tmpc_tl ]{pentagon~2} \group_end: } \prop_gput:Nnn \g__tilings_pentagon_lms_action_prop {G} { \group_begin: \int_gincr:N \g__tilings_tile_int \fp_set:Nn \l__tilings_tmpa_fp {\l__tilings_step_dim*cosd(72)} \pgftransformxshift{\fp_to_dim:N \l__tilings_tmpa_fp} \fp_set:Nn \l__tilings_tmpa_fp {\l__tilings_step_dim*tand(54)*cosd(72)} \pgftransformyshift{\fp_to_dim:N \l__tilings_tmpa_fp} \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~ pentagram/.try, tile~ \int_use:N \g__tilings_tile_int/.try, tile/.try/.expand~ once=\l__tilings_tmpc_tl ]{pentagram} \group_end: } \prop_gput:Nnn \g__tilings_pentagon_lms_action_prop {B} { \group_begin: \int_gincr:N \g__tilings_tile_int \fp_set:Nn \l__tilings_tmpa_fp {\l__tilings_step_dim*cosd(72)} \pgftransformxshift{\fp_to_dim:N \l__tilings_tmpa_fp} \fp_set:Nn \l__tilings_tmpa_fp {\l__tilings_step_dim*tand(54)*cosd(72)} \pgftransformyshift{\fp_to_dim:N \l__tilings_tmpa_fp} \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~ boat/.try, tile~ \int_use:N \g__tilings_tile_int/.try, tile/.try/.expand~ once=\l__tilings_tmpc_tl ]{boat} \group_end: } \prop_gput:Nnn \g__tilings_pentagon_lms_action_prop {D} { \group_begin: \int_gincr:N \g__tilings_tile_int \pgftransformrotate{90} \fp_set:Nn \l__tilings_tmpa_fp {\l__tilings_step_dim*cosd(18)} \pgftransformxshift{-\fp_to_dim:N \l__tilings_tmpa_fp} \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~ diamond/.try, tile~ \int_use:N \g__tilings_tile_int/.try, tile/.try/.expand~ once=\l__tilings_tmpc_tl ]{diamond} \group_end: } \ExplSyntaxOff %% %% Copyright (C) 2014-2023 by Andrew Stacey %% %% 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.penrose.code.tex'.