diff options
| author | Ian Jauslin <ian@jauslin.org> | 2022-10-17 20:59:01 -0400 | 
|---|---|---|
| committer | Ian Jauslin <ian@jauslin.org> | 2022-10-17 20:59:01 -0400 | 
| commit | bdf817efec1cfdd67cc6176a6664442fd98173ae (patch) | |
| tree | 93d0abe475c342b2c0cac0dfdb16e2fa018bf4e6 /figs/libs | |
Diffstat (limited to 'figs/libs')
| -rw-r--r-- | figs/libs/shapes.sty | 109 | 
1 files changed, 109 insertions, 0 deletions
| diff --git a/figs/libs/shapes.sty b/figs/libs/shapes.sty new file mode 100644 index 0000000..e60faeb --- /dev/null +++ b/figs/libs/shapes.sty @@ -0,0 +1,109 @@ +% square lattice (width #1, height #2, origin #3, spacing #4) +\def\grid#1#2#3{ +  \foreach\i in {0,...,#2}{ +    \draw#3++(0,\i)--++(#1,0); +  } +  \foreach\i in {0,...,#1}{ +    \draw#3++(\i,0)--++(0,#2); +  } +} + + +% cross (color #1, position #2) +\def\cross#1#2{ +  \fill[color=#1]#2++(0.5,0.5)--++(0,1)--++(-1,0)--++(0,-1)--++(-1,0)--++(0,-1)--++(1,0)--++(0,-1)--++(1,0)--++(0,1)--++(1,0)--++(0,1)--++(-1,0); +  \begin{scope} +    \clip#2++(0.5,0.5)--++(0,1)--++(-1,0)--++(0,-1)--++(-1,0)--++(0,-1)--++(1,0)--++(0,-1)--++(1,0)--++(0,1)--++(1,0)--++(0,1)--++(-1,0); +    \grid44{[color=white]#2++(-2,-2)} +  \end{scope} +  \draw[color=black]#2++(0.5,0.5)--++(0,1)--++(-1,0)--++(0,-1)--++(-1,0)--++(0,-1)--++(1,0)--++(0,-1)--++(1,0)--++(0,1)--++(1,0)--++(0,1)--++(-1,0); +} + +% V triomino (color #1, position #2) +\def\Vtriomino#1#2{ +  \fill[color=#1]#2++(0.5,0.5)--++(0,1)--++(-1,0)--++(0,-2)--++(2,0)--++(0,1)--++(-1,0); +  \begin{scope} +    \clip#2++(0.5,0.5)--++(0,1)--++(-1,0)--++(0,-2)--++(2,0)--++(0,1)--++(-1,0); +    \grid33{[color=white]#2++(-1,-1)} +  \end{scope} +  \draw[color=black]#2++(0.5,0.5)--++(0,1)--++(-1,0)--++(0,-2)--++(2,0)--++(0,1)--++(-1,0); +} + +% T tetromino (color #1, position #2) +\def\Ttetromino#1#2{ +  \fill[color=#1]#2++(0.5,0.5)--++(0,1)--++(-1,0)--++(0,-3)--++(1,0)--++(0,1)--++(1,0)--++(0,1)--++(-1,0); +  \begin{scope} +    \clip#2++(0.5,0.5)--++(0,1)--++(-1,0)--++(0,-3)--++(1,0)--++(0,1)--++(1,0)--++(0,1)--++(-1,0); +    \grid34{[color=white]#2++(-1,-2)} +  \end{scope} +  \draw[color=black]#2++(0.5,0.5)--++(0,1)--++(-1,0)--++(0,-3)--++(1,0)--++(0,1)--++(1,0)--++(0,1)--++(-1,0); +} + +% L tetromino (color #1, position #2) +\def\Ltetromino#1#2{ +  \fill[color=#1]#2++(0.5,0.5)--++(0,1)--++(-1,0)--++(0,-3)--++(2,0)--++(0,1)--++(-1,0)--++(0,1); +  \begin{scope} +    \clip#2++(0.5,0.5)--++(0,1)--++(-1,0)--++(0,-3)--++(2,0)--++(0,1)--++(-1,0)--++(0,1); +    \grid34{[color=white]#2++(-1,-2)} +  \end{scope} +  \draw[color=black]#2++(0.5,0.5)--++(0,1)--++(-1,0)--++(0,-3)--++(2,0)--++(0,1)--++(-1,0)--++(0,1); +} + +% P pentomino (color #1, position #2) +\def\Ppentomino#1#2{ +  \fill[color=#1]#2++(1.5,1.5)--++(-2,0)--++(0,-3)--++(1,0)--++(0,1)--++(1,0)--++(0,2); +  \begin{scope} +    \clip#2++(1.5,1.5)--++(-2,0)--++(0,-3)--++(1,0)--++(0,1)--++(1,0)--++(0,2); +    \grid34{[color=white]#2++(-1,-2)} +  \end{scope} +  \draw[color=black]#2++(1.5,1.5)--++(-2,0)--++(0,-3)--++(1,0)--++(0,1)--++(1,0)--++(0,2); +} + +% 1x1 square (color #1, position #2) +\def\square#1#2{ +  \fill[color=#1]#2++(-0.5,-0.5)--++(0,1)--++(1,0)--++(0,-1)--cycle; +  \draw[color=black]#2++(-0.5,-0.5)--++(0,1)--++(1,0)--++(0,-1)--cycle; +  \draw[color=white]#2++(-0.5,0)--++(1,0); +  \draw[color=white]#2++(0,-0.5)--++(0,1); +} + +% 2x2 square (color #1, position #2) +\def\ttsquare#1#2{ +  \fill[color=#1]#2++(-1,-1)--++(0,2)--++(2,0)--++(0,-2)--cycle; +  \draw[color=black]#2++(-1,-1)--++(0,2)--++(2,0)--++(0,-2)--cycle; +  \draw[color=white]#2++(-0.5,-1)--++(0,2); +  \draw[color=white]#2++(0.5,-1)--++(0,2); +  \draw[color=white]#2++(-1,-0.5)--++(2,0); +  \draw[color=white]#2++(-1,0.5)--++(2,0); +} +\def\ttsquareempty#1{ +  \draw[color=black]#1++(-1,-1)--++(0,2)--++(2,0)--++(0,-2)--cycle; +} + +% diamond (color #1, position #2) +\def\diamond#1#2{ +  \fill[color=#1]#2++(0,-1)--++(1,1)--++(-1,1)--++(-1,-1)--cycle; +  \begin{scope} +    \clip#2++(0,-1)--++(1,1)--++(-1,1)--++(-1,-1)--cycle; +    \grid22{[color=white]#2++(-1,-1)} +  \end{scope} +  \draw[color=black]#2++(0,-1)--++(1,1)--++(-1,1)--++(-1,-1)--cycle; +} + +% rods (color #1, position #2) +\def\rodh#1#2{ +  \fill[color=#1]#2++(-5.5,-0.5)--++(11,0)--++(0,1)--++(-11,0)--cycle; +  \begin{scope} +    \clip#2++(-5.5,-0.5)--++(11,0)--++(0,1)--++(-11,0)--cycle; +    \grid{12}2{[color=white]#2++(-6,-1)} +  \end{scope} +  \draw[color=black]#2++(-5.5,-0.5)--++(11,0)--++(0,1)--++(-11,0)--cycle; +} +\def\rodv#1#2{ +  \fill[color=#1]#2++(-0.5,-5.5)--++(0,11)--++(1,0)--++(0,-11)--cycle; +  \begin{scope} +    \clip#2++(-0.5,-5.5)--++(0,11)--++(1,0)--++(0,-11)--cycle; +    \grid2{12}{[color=white]#2++(-1,-6)} +  \end{scope} +  \draw[color=black]#2++(-0.5,-5.5)--++(0,11)--++(1,0)--++(0,-11)--cycle; +} | 
