summaryrefslogtreecommitdiff
path: root/graphics/pgf/contrib/tikzpeople/tikzpeople.shape.duck.sty
blob: e50f54fd065c1d76da57ab53afe44ba5ffffb3b8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
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}%
}