diff options
Diffstat (limited to 'graphics/pgf/contrib/tikzpingus/tikzpingus-christmas.lib.tex')
-rw-r--r-- | graphics/pgf/contrib/tikzpingus/tikzpingus-christmas.lib.tex | 153 |
1 files changed, 0 insertions, 153 deletions
diff --git a/graphics/pgf/contrib/tikzpingus/tikzpingus-christmas.lib.tex b/graphics/pgf/contrib/tikzpingus/tikzpingus-christmas.lib.tex deleted file mode 100644 index b86e799d79..0000000000 --- a/graphics/pgf/contrib/tikzpingus/tikzpingus-christmas.lib.tex +++ /dev/null @@ -1,153 +0,0 @@ -% Florian Sihler, 2022 -% Licensed under GNU General Public License version 3 -% https://opensource.org/licenses/gpl-3.0.html -\pingu@create@extra{santahat}{% - santa hat/.code = \pingu@set@extra{santahat}{true}\pingu@color{santahat}{#1}\pgfqkeys{/pingu}{hair=\@pingu@none}, - santa hat/.default = pingu@red!87!pingu@black, - santa hat second/.code = \pingu@color{santahat@second}{#1}, - santa hat bobble/.code = \pingu@color{santahat@bobble}{#1} -}{santa hat second={pingu@white!97!\pingu@color@santahat},santa hat bobble={\pingu@color@santahat@second}} -\def\pingu@draw@ea@santahat{% -\path (\pingu@name-head-center)+(152:\pingu@w@half{} and \pingu@head@h@half) coordinate (\pingu@name-santa-right); -\path (\pingu@name-head-center)+(5:\pingu@w@half{} and \pingu@head@h@half) coordinate (\pingu@name-santa-left); -\pingu@layer{middle}[] -\pingu@block{\pingu@color@santahat@second} (\pingu@name-santa-right) to[out=48,in=132] (\pingu@name-santa-left) to[out=30,in=-45,looseness=1.325] ++(0,3.2mm) -to[out=135,in=47,looseness=1.025] coordinate[pos=.915] (\pingu@name-santa-ur) coordinate[pos=.055] (\pingu@name-santa-ul) ([yshift=2mm]\pingu@name-santa-right) to[out=240,in=140] cycle; -\endpingu@layer -\pingu@layer{background}[] -\pingu@block{\pingu@color@santahat} (\pingu@name-santa-ur) arc(145:-25:11.85mm and 14.915mm) - to[bend right=7] coordinate[pos=.5] (\pingu@name-santa-lc) ++(-1.11mm,.375mm) to[bend right=11] (\pingu@name-santa-ul) to[bend right=15] cycle; -\pingu@block{\pingu@color@santahat@bobble} (\pingu@name-santa-lc) circle[radius=2.625mm]; -\endpingu@layer -} -\pingu@create@extra{santabeard}{% - santa beard/.code = \pingu@set@extra{santabeard}{true}\pingu@color{santabeard}{#1}, - santa beard/.default = pingu@white!96!pingu@red!98!pingu@black!92!gray, - santa beard string/.code = \pingu@color{santabeard@string}{#1} -}{santa beard string=\pingu@color@body@main!85!pingu@black} -\def\pingu@draw@ea@santabeard{% -% \coordinate (\pingu@name-santa-beard-center) at ([yshift=1.25mm]\pingu@name-belly-center); -\pingu@block{\pingu@color@santabeard@string} ([xshift=-.35mm,yshift=.575mm]\pingu@name-head-back-con-right) to[bend right=28,edge node={foreach[count=\i] \l in {0.03,0.085,...,0.992} {coordinate[pos=\l-rand*.015,yshift=-.85pt] (\pingu@name-santa-beard-\i)}}] -([yshift=.575mm,xshift=.35mm]\pingu@name-head-back-con-left) arc(20:110:.05mm and .15mm) to[bend left=26] ([yshift=.575mm+.15mm,xshift=-.35mm]\pingu@name-head-back-con-right) to[bend right] cycle; -\ifx\pingu@color@santabeard\@pingu@none\else% to allow for random -\xdef\@pmaxY{18}\xdef\@pmaxYI{17}% -\foreach[evaluate=\j as \maxj using int(\@pmaxY-\j),evaluate=\j as \widthred using \j/23pt] \j in {0,...,\@pmaxYI} { -\foreach[remember=\i as \li (initially 0)] \i in {1,...,\maxj} { - \pgfmathsetmacro\@ptmp{94+rand*2.6} - \pingu@block{\pingu@color@santabeard!\@ptmp!pingu@black} (\pingu@name-santa-beard-\i) circle [radius=1.85pt-\widthred pt+rand*.35pt]; - \ifnum\li>0 % make middle of last - \path (\pingu@name-santa-beard-\li) -- (\pingu@name-santa-beard-\i) coordinate[pos=.5,yshift=-1.1pt,xshift=.133pt] (\pingu@name-santa-beard-\li); % smoll shift - \fi -}}\fi -} - -\pingu@create@extra{woolhat}{% - wool hat/.code = \pingu@set@extra{woolhat}{true}\pingu@color{woolhat}{#1}\pgfqkeys{/pingu}{hair=\@pingu@none}, - wool hat/.default = pingu@blue!57!pingu@black, - wool hat second/.code = \pingu@color{woolhat@second}{#1}, - wool hat bobble/.code = \pingu@color{woolhat@bobble}{#1} -}{wool hat second={\pingu@color@woolhat!55!pingu@white},wool hat bobble={\pingu@color@woolhat@second}} -\def\pingu@draw@ea@woolhat{% -\path ([yshift=.5mm,xshift=.165mm]\pingu@name-head-center)+(165:\pingu@w@half{} and \pingu@head@h@half) coordinate (\pingu@name-wool-right); -\path ([yshift=.5mm,xshift=-.045mm]\pingu@name-head-center)+(4:\pingu@w@half{} and \pingu@head@h@half) coordinate (\pingu@name-wool-left); -\pingu@layer{middle}[] -\pingu@block{\pingu@color@woolhat@second} (\pingu@name-wool-right) to[out=37,in=170] (\pingu@name-wool-left) to[out=50,in=-55] ++(0,1.52mm) coordinate (\pingu@name-wool-left-up) -to[out=167,in=38] coordinate[pos=.915] (\pingu@name-wool-ur) coordinate[pos=.055] (\pingu@name-wool-ul) ([yshift=1.5mm]\pingu@name-wool-right) coordinate (\pingu@name-wool-right-up) to[out=240,in=140] cycle; -\endpingu@layer -\path (\pingu@name-wool-left-up) -- (\pingu@name-wool-right-up) coordinate[pos=.455,yshift=9.75mm] (@mid); -\pingu@block{\pingu@color@woolhat} (\pingu@name-wool-right-up) to[out=71,in=203] [rounded corners=2pt] (@mid) to[out=-34,in=100] [sharp corners] (\pingu@name-wool-left-up) to[in=37,out=172] cycle; -\pingu@layer{background}[] -\pingu@block{\pingu@color@woolhat@bobble} (@mid) circle [radius=1.25mm]; -\endpingu@layer -} - - -\pingu@create@extra{deerhat}{% - deer hat/.code = \pingu@set@extra{deerhat}{true}\pingu@color{deerhat}{#1}\pgfqkeys{/pingu}{hair=\@pingu@none}, - deer hat/.default = pingu@bronze!57!pingu@black, - deer hat b/.code = \pingu@color{deerhat@b}{#1}, - deer hat band/.code = \pingu@color{deerhat@band}{#1}, -}{deer hat band={\pingu@color@deerhat!85!pingu@black},deer hat b=\pingu@color@deerhat} -\pgfmathsetmacro\pingu@deerhat@baseang@l{90-360*(1-\pinguanglehl)} -\pgfmathsetmacro\pingu@deerhat@baseang@r{90-360*(1-\pinguanglehr)} -\def\pingu@deerhat@baseoff{47} -\def\pingu@deerhat@yshift{.15mm} -\def\pingu@deerhat@linewidth{1.32mm} -\def\pingu@deerhat@headoff@l{22} -\def\pingu@deerhat@headoff@r{19} -\def\pingu@draw@ea@deerhat{% -\path ([yshift=-\pingu@deerhat@yshift]\pingu@name-head-left) arc (\pingu@deerhat@baseang@l:\pingu@deerhat@baseang@l-\pingu@deerhat@baseoff:\pingu@w@half{} and \pingu@head@h@half) coordinate[yshift=.05mm] (@target); -\pingu@draw[line width=.7mm]{\pingu@color@deerhat@band} ([xshift=-.8mm]@target) arc (\pingu@deerhat@baseang@l-\pingu@deerhat@baseoff:360+\pingu@deerhat@baseang@r+\pingu@deerhat@baseoff:\pingu@w@half{}-.8mm and \pingu@head@h@half); - -\path ([yshift=-\pingu@deerhat@yshift]\pingu@name-head-top) arc (90:90-\pingu@deerhat@headoff@l:\pingu@w@half{} and \pingu@head@h@half) coordinate (@left); -\path ([yshift=-\pingu@deerhat@yshift]\pingu@name-head-top) arc (90:90+\pingu@deerhat@headoff@r:\pingu@w@half{} and \pingu@head@h@half) coordinate (@right); - -\pgfonlayer{background} -\pingu@draw[line width=\pingu@deerhat@linewidth,rounded corners=2pt,line cap=round]{\pingu@color@deerhat} (@left) to[bend right=4] ++(.85mm,1.5mm) coordinate (@a) -- ++(3.15mm,.5mm) coordinate (@b) -- ++(4.65mm,4.35mm) coordinate[pos=.5] (@c) to[bend right=10] ++(-.75mm,2.55mm); -\pingu@draw[line width=\pingu@deerhat@linewidth,rounded corners=2pt,line cap=round]{\pingu@color@deerhat} ([xshift=-.135mm,yshift=-.425mm]@a) to[bend left=3] ++(1mm,3.9mm) ([xshift=-.4mm,yshift=-.05mm]@b) to[bend right=2] ++(3.75mm,.1mm) (@c) to[bend left=12] ++(-1mm,3.5mm); -\pingu@draw[line width=\pingu@deerhat@linewidth,rounded corners=2pt,line cap=round]{\pingu@color@deerhat@b} (@right) to[bend left=4] ++(-.85mm,1.5mm) coordinate (@a) -- ++(-3.15mm,.5mm) coordinate (@b) -- ++(-4.65mm,4.35mm) coordinate[pos=.5] (@c) to[bend left=10] ++(.75mm,2.55mm); -\pingu@draw[line width=\pingu@deerhat@linewidth,rounded corners=2pt,line cap=round]{\pingu@color@deerhat@b} ([yshift=-.425mm,xshift=.135mm]@a) to[bend right=3] ++(-1mm,3.9mm) ([xshift=.4mm,yshift=-.05mm]@b) to[bend right=2] ++(-3.75mm,.1mm) (@c) to[bend right=12] ++(1mm,3.5mm); -\endpgfonlayer -} - -\pingu@create@wing@extra{present}{% - present \@lr/.code = {\pingu@set@extra{present\@lr}{true}\pingu@color{present\@lr}{##1}}, - present \@lr/.default = pingu@red!50!pingu@black!60!red, - present \@lr\space width/.code = \@namedef{pingu@present@\@lr @width}{##1}, - present \@lr\space height/.code = \@namedef{pingu@present@\@lr @height}{##1}, - present \@lr\space ribbon/.code = \pingu@color{present\@lr @ribbon}{##1},% - present \@lr\space band/.code = \pingu@color{present\@lr @band}{##1},% - present \@lr\space band width/.code = \@namedef{pingu@present@\@lr @band@width}{##1}, - present \@lr\space xshift/.code = \@namedef{pingu@present@\@lr @xshift}{##1}, - present \@lr\space yshift/.code = \@namedef{pingu@present@\@lr @yshift}{##1}, - present \@lr\space band second height/.code = \@namedef{pingu@present@\@lr @band@second@height}{##1}, - present \@lr\space band second yshift/.code = \@namedef{pingu@present@\@lr @band@second@yshift}{##1}, - present \@lr\space lid/.code = \pingu@color{present\@lr @lid}{##1},% - present \@lr\space lid height/.code = \@namedef{pingu@present@\@lr @lid@height}{##1}, - present \@lr\space lid overhang/.code = \@namedef{pingu@present@\@lr @lid@overhang}{##1}, - present \@lr\space lid yshift/.code = \@namedef{pingu@present@\@lr @lid@yshift}{##1}, - present \@lr\space lid band/.code = \pingu@color{present\@lr @lid@band}{##1},% -}{present \@lr\space band=pingu@green!70!pingu@black!90!pingu@white,present \@lr\space width=7.75mm,present \@lr\space band width=1.75mm,present \@lr\space height=7mm,present \@lr\space yshift=-0.25*(\csname pingu@present@\@lr @height\endcsname),present \@lr\space band second height=\csname pingu@present@\@lr @band@width\endcsname, present \@lr\space band second yshift=0.5*(\csname pingu@present@\@lr @height\endcsname),present \@lr\space xshift=-0.25*(\csname pingu@present@\@lr @width\endcsname),present \@lr\space lid=\csname pingu@color@present\@lr\endcsname!92!pingu@black,present \@lr\space lid height=1.33mm,present \@lr\space lid overhang=.125mm,present \@lr\space lid yshift=0,present \@lr\space lid band=\csname pingu@color@present\@lr @band\endcsname!98!pingu@black,present \@lr\space ribbon=\csname pingu@color@present\@lr @band\endcsname!97!pingu@black} - -% TODO: more ribbon color control -% #1 wing -\def\pingu@draw@wi@present#1{% - \pingu@setup@wing{present}{#1}% - \scope[rotate around={\@angle:(\pingu@name-wing-#1)}] - \pingu@block[rounded corners=2pt]{\@col}(\pingu@name-wing-#1)++(-{0.5*(\csname pingu@present@#1@width\endcsname)+\csname pingu@present@#1@xshift\endcsname},{\csname pingu@present@#1@yshift\endcsname}) coordinate (@ll) rectangle ++({\csname pingu@present@#1@width\endcsname},{\csname pingu@present@#1@height\endcsname}) coordinate (@ur); - % vert band - \pingu@block{\csname pingu@color@present#1@band\endcsname}(@ll)++({0.5*(\csname pingu@present@#1@width\endcsname)-0.5*(\csname pingu@present@#1@band@width\endcsname)},0) rectangle ++({\csname pingu@present@#1@band@width\endcsname},{\csname pingu@present@#1@height\endcsname}); - % horiz band - \pingu@block{\csname pingu@color@present#1@band\endcsname}(@ll)++(0,{\csname pingu@present@#1@band@second@yshift\endcsname-0.5*(\csname pingu@present@#1@band@second@height\endcsname)}) rectangle ++({\csname pingu@present@#1@width\endcsname},{\csname pingu@present@#1@band@second@height\endcsname}); - % lid - \pingu@block[rounded corners=.75pt]{\csname pingu@color@present#1@lid\endcsname} ([yshift={\csname pingu@present@\@lr @lid@yshift\endcsname},xshift=\csname pingu@present@\@lr @lid@overhang\endcsname]@ur) rectangle ++({-\csname pingu@present@#1@width\endcsname-2*(\csname pingu@present@\@lr @lid@overhang\endcsname)},-\csname pingu@present@#1@lid@height\endcsname) coordinate (@ll); - % upper lid band - \pingu@block{\csname pingu@color@present#1@lid@band\endcsname}(@ll)++({0.5*(\csname pingu@present@#1@width\endcsname)-0.5*(\csname pingu@present@#1@band@width\endcsname)+\csname pingu@present@\@lr @lid@overhang\endcsname},0) rectangle ++({\csname pingu@present@#1@band@width\endcsname},{\csname pingu@present@#1@lid@height\endcsname}); - % ribbon - \path (@ll)++({0.5*(\csname pingu@present@#1@width\endcsname)+\csname pingu@present@\@lr @lid@overhang\endcsname+0.2*(\csname pingu@present@#1@band@width\endcsname)},{\csname pingu@present@#1@lid@height\endcsname+.25mm}) coordinate (@top); - \pingu@block[even odd rule]{\csname pingu@color@present#1@ribbon\endcsname} (@top) to[out=40,in=110] ++(4mm,1mm) - to[out=-70,in=-20] ++(-4mm,-1.5mm) to[bend left=55] cycle ([xshift=.5mm]@top) to[out=40,in=110] ++(2.55mm,.5mm) - to[out=-70,in=-20] [rounded corners=1pt] ++(-2.85mm,-.835mm) -- cycle; - \path (@ll)++({0.5*(\csname pingu@present@#1@width\endcsname)+\csname pingu@present@\@lr @lid@overhang\endcsname-0.2*(\csname pingu@present@#1@band@width\endcsname)},{\csname pingu@present@#1@lid@height\endcsname+.25mm}) coordinate (@top); - \pingu@block[even odd rule]{\csname pingu@color@present#1@ribbon\endcsname} (@top) to[out=180-40,in=180-110] ++(-3.6mm,1mm) - to[out=-110,in=-160] ++(3.6mm,-1.5mm) to[bend right=55] cycle ([xshift=-.5mm]@top) to[out=140,in=70] ++(-2.55mm,.5mm) - to[out=-110,in=-160] [rounded corners=1pt] ++(2.55mm,-.75mm) -- cycle; - \pingu@block[rounded corners=.5pt]{\csname pingu@color@present#1@ribbon\endcsname} (@top)++(-.3mm,-.65mm) rectangle ++(1.3mm,.65mm); % TODO: make that round? (i.e., bend edges) - \endscope -} - -\pingu@create@wing@extra{snowball}{% - snowball \@lr/.code = {\pingu@set@extra{snowball\@lr}{true}\pingu@color{snowball\@lr}{##1}}, - snowball \@lr/.default = pingu@white!90!pingu@black, - snowball \@lr\space size/.code = \expandafter\def\csname pingu@snowball@\@lr @size\endcsname{##1}, - snowball \@lr\space xshift/.code = \expandafter\def\csname pingu@snowball@\@lr @xshift\endcsname{##1}, - snowball \@lr\space yshift/.code = \expandafter\def\csname pingu@snowball@\@lr @yshift\endcsname{##1} -}{snowball \@lr\space size=2.33mm, snowball \@lr\space xshift=0pt, snowball \@lr\space yshift=0pt} - -% #1 wing -% TODO: shifts -\def\pingu@draw@wi@snowball#1{% -\pingu@setup@wing{snowball}{#1}% - \pingu@draw[opacity=.35]{\@col} ([xshift=\csname pingu@snowball@#1@xshift\endcsname,yshift=\csname pingu@snowball@#1@yshift\endcsname]\pingu@name-wing-#1) coordinate (@) circle[radius=\csname pingu@snowball@#1@size\endcsname]; - \pingu@block[rotate around={\@angle-1:(\pingu@name-wing-#1)},decoration={random steps,segment length=1pt,amplitude=.075pt},decorate,rounded corners=.35pt,save path=\snowball@outer]{\@col}(@) circle[radius=\csname pingu@snowball@#1@size\endcsname]; -}
\ No newline at end of file |