summaryrefslogtreecommitdiff
path: root/graphics/pgf/contrib/tikzlings/tikzlings-bears.sty
diff options
context:
space:
mode:
Diffstat (limited to 'graphics/pgf/contrib/tikzlings/tikzlings-bears.sty')
-rw-r--r--graphics/pgf/contrib/tikzlings/tikzlings-bears.sty82
1 files changed, 56 insertions, 26 deletions
diff --git a/graphics/pgf/contrib/tikzlings/tikzlings-bears.sty b/graphics/pgf/contrib/tikzlings/tikzlings-bears.sty
index c84c0a2b0a..1af0927ebf 100644
--- a/graphics/pgf/contrib/tikzlings/tikzlings-bears.sty
+++ b/graphics/pgf/contrib/tikzlings/tikzlings-bears.sty
@@ -1,8 +1,8 @@
% !TeX root = ./examples/bear.tex
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
-% The tikzlings-bears package (part of the tikzlings collection)
-% A package to bring little teddy bears into tikz
+% This package is part of the TikZlings package
+% A package to bring cute little animals and other beings into tikz
% Maintained by samcarter
%
% Project repository and bug tracker:
@@ -11,12 +11,8 @@
% Released under the LaTeX Project Public License v1.3c or later
% See http://www.latex-project.org/lppl.txt
%
-% Version 0.2
-% April 7, 2019
-%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\ProvidesPackage{tikzlings-bears}
- [2019/04/07 v0.2 Draw teddy bears in TikZ]
+\ProvidesPackage{tikzlings-bears}[2020/04/22 version v0.3 Draw teddy bears in TikZ]
\RequirePackage{tikz}
\RequirePackage{tikzlings-addons}
@@ -27,9 +23,13 @@
\bear@draw%
\end{scope}%
\thing[#1]%
+ % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \csname bearhookforeground\endcsname
+ \csname tikzlinghookforeground\endcsname
}
\newif\ifbear@threeD
+\newif\ifbear@back
\tikzset{
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -52,6 +52,7 @@
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3D/.code = \bear@threeDtrue,
+ back/.code = \bear@backtrue,
}
\def\bear@draw{%
@@ -69,7 +70,7 @@
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\pgfgettransformentries{\tmpscaleA}{\tmpscaleB}{\tmpscaleC}{\tmpscaleD}{\tmp}{\tmp}%
-\pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))}%
+\pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))*sqrt(abs((\pgf@xx/1cm)*(\pgf@yy/1cm)-(\pgf@xy/1cm)*(\pgf@yx/1cm)))}%
\pgfmathsetmacro{\xscalefactor}{\tmpscaleA}
\pgfmathsetmacro{\yscalefactor}{\tmpscaleD}
%
@@ -91,38 +92,67 @@
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
+% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\csname bearhookbackground\endcsname
+\csname tikzlinghookbackground\endcsname
+%
% 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);
+\bear@part@draw[\bear@body!70!black] (0.525,0.9) ellipse[x radius=0.35, y radius=0.15, rotate=-50];
+\bear@part@draw[\bear@body!70!black] (-0.525,0.9) ellipse[x radius=0.35, y radius=0.15, rotate=50];
+%
+% Feet if back %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ifbear@back
+ \bear@part@draw[\bear@body!70!black] (0.425, 0.3) circle[radius=0.28];
+ \bear@part@draw[\bear@body!70!black] (-0.425, 0.3) circle[radius=0.28];
+\fi
%
% 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);
+\bear@part@draw[\bear@body!70!black] (0,0.75) ellipse[x radius=0.55, y radius=0.65];
+\ifbear@back\else
+ \bear@part@draw[\bear@body!50!white] (0,0.7) ellipse[x radius=0.35, y radius=0.4];
+\fi
+%
+% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\csname bearhookbelly\endcsname
+\csname tikzlinghookbelly\endcsname
%
% 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);
+\ifbear@back\else
+ \bear@part@draw[\bear@body!70!black] (0.425, 0.3) circle[radius=0.28];
+ \bear@part@draw[\bear@body!70!black] (-0.425, 0.3) circle[radius=0.28];
+ \bear@part@draw[\bear@body!50!white] (0.425, 0.3) circle[radius=0.17];
+ \bear@part@draw[\bear@body!50!white] (-0.425, 0.3) circle[radius=0.17];
+\fi
%
% 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);
+\bear@part@draw[\bear@body!70!black] (0.375, 1.95) circle[radius=0.15];
+\bear@part@draw[\bear@body!70!black] (-0.375, 1.95) circle[radius=0.15];
+\ifbear@back\else
+ \bear@part@draw[\bear@body!50!white] (0.375, 1.95) circle[radius=0.1];
+ \bear@part@draw[\bear@body!50!white] (-0.375, 1.95) circle[radius=0.1];
+\fi
%
% Head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\bear@part@draw[\bear@body!70!black] (0, 1.55) circle (0.5);
+\bear@part@draw[\bear@body!70!black] (0, 1.55) circle[radius=0.5];
+%
+% Show details only from the front %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ifbear@back\else
%
% 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);
+\bear@part@draw[\bear@body!50!white] (0, 1.4) ellipse[x radius=0.28, y radius=0.2];
+\bear@part@draw[\bear@body!70!white!80!red] (0, 1.5) ellipse[x radius=0.15, y radius=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);
+\bear@part@draw[\bear@body!30!black] (-0.155, 1.7) circle[radius=0.05];
+\bear@part@draw[\bear@body!30!black] (0.155, 1.7) circle[radius=0.05];
%
% Mouth %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\draw[\bear@body!30!black,line width=\scalingfactor*0.4pt] (0.145, 1.38) arc [start angle=-20, end angle=-160, radius=0.16];
%
-} \ No newline at end of file
+\fi
+%
+% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\csname bearhookbody\endcsname
+\csname tikzlinghookbody\endcsname
+%
+}