summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/tikzlings/tikzlings-penguins.sty
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2018-11-09 21:54:05 +0000
committerKarl Berry <karl@freefriends.org>2018-11-09 21:54:05 +0000
commit05a427a48fbea0f9183ca423dd19d4cbd5feb7a2 (patch)
tree0b736e6408d4684ab23ed146ad387fd7706a43cc /Master/texmf-dist/tex/latex/tikzlings/tikzlings-penguins.sty
parentdd7f41a8a44bf912af9c15f9719f9dadc6339617 (diff)
tikzlings (9nov18)
git-svn-id: svn://tug.org/texlive/trunk@49113 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/tikzlings/tikzlings-penguins.sty')
-rw-r--r--Master/texmf-dist/tex/latex/tikzlings/tikzlings-penguins.sty117
1 files changed, 117 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/tikzlings/tikzlings-penguins.sty b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-penguins.sty
new file mode 100644
index 00000000000..ce7098621c4
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-penguins.sty
@@ -0,0 +1,117 @@
+% !TeX root = ./examples/pingu.tex
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% The tikzlings-penguins package (part of the tikzlings collection)
+% A package to bring penguins into tikz
+% Maintained by samcarter
+%
+% Project repository and bug tracker:
+% https://github.com/samcarter/tikzlings
+%
+% Released under the LaTeX Project Public License v1.3c or later
+% See http://www.latex-project.org/lppl.txt
+%
+% Version 0.1
+% Nov 9, 2018
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ProvidesPackage{tikzlings-penguins}
+ [2018/11/09 v0.1 Draw penguins in TikZ]
+
+\RequirePackage{tikz}
+\RequirePackage{tikzlings-addons}
+
+\newcommand*{\penguin}[1][]{%
+ \begin{scope}%
+ \tikzset{/penguin/.cd,#1}%
+ \penguin@draw%
+ \end{scope}%
+ \thing[#1]%
+}
+
+\newif\ifpenguin@threeD
+
+\tikzset{
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ %
+ % Pass unknown keys on to tikz
+ %
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ /penguin/.search also={/tikz,/pgf,/thing},
+ /penguin/.cd,
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ %
+ % body
+ %
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ body/.code = \def\penguin@body{#1},
+ body = black,
+ belly/.code = \def\penguin@belly{#1},
+ belly = white!95!black,
+ feet/.code = \def\penguin@feet{#1},
+ feet = yellow!50!orange,
+ bill/.code = \def\penguin@bill{#1},
+ bill = orange,
+ eye/.code = \def\penguin@eye{#1},
+ eye = white!95!black,
+ pupil/.code = \def\penguin@pupil{#1},
+ pupil = black,
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ %
+ % options
+ %
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ 3D/.code = \penguin@threeDtrue,
+}
+
+\def\penguin@draw{%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% minimal bounding box size
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\path (-0.865, 0.15) rectangle (0.865, 2.13);
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% switch between 2D and 3D, from
+% https://chat.stackexchange.com/transcript/message/45991801#45991801
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ifpenguin@threeD
+ \def\penguin@part@draw[##1]{\shade[ball color=##1]}
+\else
+ \def\penguin@part@draw[##1]{\fill[##1]}
+\fi
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Body parts (center: x=0.925)
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Arms %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\penguin@part@draw[\penguin@body,rotate around={-50:(0.575,1.2)}] (0.575,1.2) ellipse (0.38 and 0.1);
+\penguin@part@draw[\penguin@body,rotate around={50:(-0.575,1.2)}] (-0.575,1.2) ellipse (0.38 and 0.1);
+%
+% Body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\penguin@part@draw[\penguin@body] (0.595, 0.92) .. controls (0.595, 0.26) and (0.355, 0.18) .. (0, 0.18) .. controls (-0.355, 0.18) and (-0.595, 0.26) .. (-0.595, 0.92) .. controls (-0.605, 1.58) and (-0.335, 2.11) .. (0, 2.11) .. controls (0.335, 2.11) and (0.605, 1.58) .. (0.595, 0.92) -- cycle;
+%
+% Belly %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\penguin@part@draw[\penguin@belly] (0, 0.6) ellipse (0.48 and 0.35);
+%
+% Feet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\penguin@part@draw[\penguin@feet]
+(-0.265, 0.3941) .. controls (-0.283, 0.4505) and (-0.373, 0.6014) .. (-0.470, 0.6533) .. controls (-0.571, 0.7075) and (-0.576, 0.6369) .. (-0.554, 0.596) .. controls (-0.526, 0.5416) and (-0.573, 0.5302) .. (-0.602, 0.5384) .. controls (-0.695, 0.5653) and (-0.767, 0.5169) .. (-0.684, 0.434) .. controls (-0.664, 0.4137) and (-0.587, 0.3557) .. (-0.699, 0.3492) .. controls (-0.772, 0.345) and (-0.779, 0.268) .. (-0.689, 0.2445) .. controls (-0.597, 0.2206) and (-0.476, 0.2043) .. (-0.34, 0.2096) .. controls (-0.252, 0.2131) and (-0.237, 0.3059) .. (-0.265, 0.3941) -- cycle;
+\penguin@part@draw[\penguin@feet]
+(0.265, 0.3941) .. controls (0.283, 0.4505) and (0.3725, 0.6014) .. (0.469, 0.6533) .. controls (0.571, 0.7075) and (0.5756, 0.6369) .. (0.554, 0.596) .. controls (0.526, 0.5416) and (0.5733, 0.5302) .. (0.602, 0.5384) .. controls (0.695, 0.5653) and (0.7672, 0.5169) .. (0.684, 0.434) .. controls (0.663, 0.4137) and (0.587, 0.3557) .. (0.699, 0.3492) .. controls (0.772, 0.345) and (0.7789, 0.268) .. (0.689, 0.2445) .. controls (0.597, 0.2206) and (0.4764, 0.2043) .. (0.34, 0.2096) .. controls (0.252, 0.2131) and (0.2368, 0.3059) .. (0.265, 0.3941) -- cycle;
+%
+% Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\fill[\penguin@eye,rotate around={-10:(-0.175,1.64)}] (-0.175,1.64) ellipse (0.1 and 0.15);
+\fill[\penguin@pupil,rotate around={-3:(-0.145,1.625)}] (-0.145,1.625) ellipse (0.0357 and 0.0714);
+\fill[\penguin@eye,rotate around={10:(0.175,1.64)}] (0.175,1.64) ellipse (0.1 and 0.15);
+\fill[\penguin@pupil,rotate around={3:(0.145,1.625)}] (0.145,1.625) ellipse (0.0357 and 0.0714);
+%
+% Bill %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\penguin@part@draw[\penguin@bill] (0.323, 1.4591) .. controls (0.1467, 1.3257) and (0.1066, 1.4365) .. (0, 1.4358) .. controls (-0.1066, 1.4365) and (-0.1467, 1.3257) .. (-0.323, 1.4591) .. controls (-0.1267, 1.075) and (0.1267, 1.075) .. (0.323, 1.4591) -- cycle;
+} \ No newline at end of file