% !TeX root = ./examples/bear.tex %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % The tikzlings-bears package (part of the tikzlings collection) % A package to bring little teddy bears 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-bears} [2018/11/09 v0.1 Draw teddy bears in TikZ] \RequirePackage{tikz} \RequirePackage{tikzlings-addons} \newcommand*{\bear}[1][]{% \begin{scope}% \tikzset{/bear/.cd,#1}% \bear@draw% \end{scope}% \thing[#1]% } \newif\ifbear@threeD \tikzset{ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % Pass unknown keys on to tikz % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% /bear/.search also={/tikz,/pgf,/thing}, /bear/.cd, %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % body % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% body/.code = \def\bear@body{#1}, body = brown, %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % options % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 3D/.code = \bear@threeDtrue, } \def\bear@draw{% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % minimal bounding box size % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \path (-0.8, 0.0) rectangle (0.8, 2.13); % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % switch between 2D and 3D, from % https://chat.stackexchange.com/transcript/message/45991801#45991801 % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \ifbear@threeD \def\bear@part@draw[##1]{\shade[ball color=##1]} \else \def\bear@part@draw[##1]{\fill[##1]} \fi % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % Body parts (center: x=0.925) % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % Arms %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \bear@part@draw[\bear@body!70!black,rotate around={-50:(0.525,0.9)}] (0.525,0.9) ellipse (0.35 and 0.15); \bear@part@draw[\bear@body!70!black,rotate around={50:(-0.525,0.9)}] (-0.525,0.9) ellipse (0.35 and 0.15); % % Body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \bear@part@draw[\bear@body!70!black] (0,0.75) ellipse (0.55 and 0.65); \bear@part@draw[\bear@body!50!white] (0,0.7) ellipse (0.35 and 0.4); % % Feet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \bear@part@draw[\bear@body!70!black] (0.425, 0.3) circle (0.28); \bear@part@draw[\bear@body!70!black] (-0.425, 0.3) circle (0.28); \bear@part@draw[\bear@body!50!white] (0.425, 0.3) circle (0.17); \bear@part@draw[\bear@body!50!white] (-0.425, 0.3) circle (0.17); % % Ears %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \bear@part@draw[\bear@body!70!black] (0.375, 1.95) circle (0.15); \bear@part@draw[\bear@body!70!black] (-0.375, 1.95) circle (0.15); \bear@part@draw[\bear@body!50!white] (0.375, 1.95) circle (0.1); \bear@part@draw[\bear@body!50!white] (-0.375, 1.95) circle (0.1); % % Head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \bear@part@draw[\bear@body!70!black] (0, 1.55) circle (0.5); % % Muzzle %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \bear@part@draw[\bear@body!50!white] (0, 1.4) ellipse (0.28 and 0.2); \bear@part@draw[\bear@body!70!white!80!red] (0, 1.5) ellipse (0.15 and 0.08); % % Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \bear@part@draw[\bear@body!30!black] (-0.155, 1.7) circle (0.05); \bear@part@draw[\bear@body!30!black] (0.155, 1.7) circle (0.05); % % Mouth %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \fill[\bear@body!30!black] (0.145, 1.38) arc [start angle=-20, end angle=-160, radius=0.16] -- (-0.14, 1.38) -- (-0.14, 1.38) arc [start angle=-160, end angle=-20, radius=0.144] -- cycle; % }