diff options
Diffstat (limited to 'graphics/pgf/contrib/tikzpeople/tikzpeople.shape.duck.sty')
-rw-r--r-- | graphics/pgf/contrib/tikzpeople/tikzpeople.shape.duck.sty | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/graphics/pgf/contrib/tikzpeople/tikzpeople.shape.duck.sty b/graphics/pgf/contrib/tikzpeople/tikzpeople.shape.duck.sty new file mode 100644 index 0000000000..e50f54fd06 --- /dev/null +++ b/graphics/pgf/contrib/tikzpeople/tikzpeople.shape.duck.sty @@ -0,0 +1,104 @@ +%% Copyright 2016 Nils Fleischhacker +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either +%% version 1.3 of this license or (at your option) any later +%% version. The latest version of this license is in +%% +%% http://www.latex-project.org/lppl.txt +%% +%% and version 1.3 or later is part of all distributions of +%% LaTeX version 2005/12/01 or later. +%% +%% This work has the LPPL maintenance status `maintained'. +%% +%% The Current Maintainer of this work is Nils Fleischhacker. +\tikzpeople@addcolorkey{bill} +\tikzpeople@addcolorkey{tongue} + +\newcommand{\tikzpeople@duck@paint}{ + \tikzpeople@person@paintshirt + \tikzpeople@duck@painttorso + \tikzpeople@person@paintrighthorn + \tikzpeople@person@painthead + \tikzpeople@duck@paintbill + \tikzpeople@person@painthair + \tikzpeople@person@paintlefthorn + \tikzpeople@person@painthalo +} + +\newcommand{\tikzpeople@duck@definecolors}{ + \definecolor{skin}{RGB}{252,167,0} + \definecolor{bill}{RGB}{247, 78, 19} + \definecolor{hair}{named}{black} + \definecolor{tongue}{RGB}{246,38,10} +} + +\newcommand{\tikzpeople@duck@definestyles}{ + \if@tikzpeople@saturated + \tikzset{ + shirt/.style ={skin}, + bill/.style ={color=\tikzpeople@bill,top color=\tikzpeople@bill!70,bottom color=\tikzpeople@bill,shading angle=45}, + tongue/.style ={color=\tikzpeople@tongue,top color=\tikzpeople@tongue!30!\tikzpeople@bill,bottom color=\tikzpeople@tongue}, + feathers/.style={color=\tikzpeople@skin,decoration={zigzag,segment length=\scalingfactor*.8pt,amplitude=\scalingfactor*.25pt},decorate,line width=\scalingfactor*.05pt} + } + \else + \tikzset{ + shirt/.style ={skin}, + bill/.style ={color=\tikzpeople@bill!80,top color=\tikzpeople@bill!50,bottom color=\tikzpeople@bill!80,shading angle=45}, + tongue/.style ={color=\tikzpeople@tongue!80,outer color=\tikzpeople@tongue!20!\tikzpeople@bill!80,inner color=\tikzpeople@tongue!80}, + feathers/.style={color=\tikzpeople@skin!80,decoration={zigzag,segment length=\scalingfactor*.8pt,amplitude=\scalingfactor*.25pt},decorate,line width=\scalingfactor*.05pt} + } + \fi +} + +\newcommand{\tikzpeople@duck@painttorso}{ + \begin{scope} + \clip + (-4pt,-8pt) .. controls (-2pt,-10pt) and (3pt,-9pt) .. + ( 5pt,-7pt) .. controls ( 5pt, 0pt) and (-5pt,0pt) .. + (-4pt,-8pt); + \draw[feathers] + (-3.5 pt,-4.2pt) .. controls (-2pt,-6.2pt) and (3pt,-5.2pt) .. + ( 4.3pt,-3.7pt); + \draw[feathers] + (-4.2pt,-5.7pt) .. controls (-2pt,-7.7pt) and (3pt,-6.7pt) .. + (4.7pt, -4.9pt); + \draw[feathers] + (-4.3pt,-7.2pt) .. controls (-2pt,-9.2pt) and (3pt,-8.2pt) .. + (5pt, -6.2pt); + \end{scope} +} + +\newcommand{\tikzpeople@duck@paintbill}{ + \path + (263:1.6pt) coordinate (tikzpeople@bill1) +(0,.12pt) coordinate + (tikzpeople@bill2) +(0,-.12pt) coordinate (tikzpeople@bill3) (340:3pt) + ++(350:1.5pt) coordinate (tikzpeople@bill4) +(0,.12pt) coordinate + (tikzpeople@bill5) +(0,-.12pt) coordinate (tikzpeople@bill6) ++(200:1.8pt) + coordinate (tikzpeople@bill7) +(0,.12pt) coordinate (tikzpeople@bill8) + +(0,-.15pt) coordinate (tikzpeople@bill9)--cycle; + \draw[bill] + (tikzpeople@bill3) to[out=320,in=190] (tikzpeople@bill6); + \draw[tongue] + (tikzpeople@bill7) to[out=5,in=215] (tikzpeople@bill4) to[out=170,in=10] + (tikzpeople@bill7)--cycle; + \draw[bill] + (tikzpeople@bill1) to[out=340,in=190] (tikzpeople@bill7) to[out=5,in=215] + (tikzpeople@bill4) to[out=0,in=0] (tikzpeople@bill6) to[out=220,in=0] + (tikzpeople@bill9) to[out=190,in=340] (tikzpeople@bill3) to[out=160,in=160] + (tikzpeople@bill1)--cycle; + \draw[bill] + (tikzpeople@bill1) to[out=340,in=190] (tikzpeople@bill7) to[out=0,in=180] + (tikzpeople@bill4) to[out=0,in=0] (tikzpeople@bill5) to[out=170,in=10] + (tikzpeople@bill8) to[out=190,in=340] (tikzpeople@bill2) to[out=160,in=160] + (tikzpeople@bill1)--cycle; + \draw[bill,line join=bevel] + (tikzpeople@bill2) to[out=340,in=190] (tikzpeople@bill8) to[out=10,in=170] + (tikzpeople@bill5) to[out=160,in=330] (340:3pt) to[out=180,in=0] (337:1.7pt) + to[out=180,in=0,in looseness=1.2] (tikzpeople@bill2)--cycle; +} + +\newcommand{\tikzpeople@duck@colors}{ + skin/200/{-1/-.6}, hair/160/{-.75/.8}, bill/20/{.6/.5}, tongue/0/{.9/.42}% +} |