diff options
author | Norbert Preining <norbert@preining.info> | 2020-04-23 03:02:25 +0000 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2020-04-23 03:02:25 +0000 |
commit | b86f6f3256611ce04f593d897b9cf412d18fa062 (patch) | |
tree | c5fecf75a10834f6ca5b39548a48f67d6294918c /graphics/pgf/contrib/tikzlings/tikzlings-rhinos.sty | |
parent | e0e2537ccbac6924b371be81092c1177e817162c (diff) |
CTAN sync 202004230302
Diffstat (limited to 'graphics/pgf/contrib/tikzlings/tikzlings-rhinos.sty')
-rw-r--r-- | graphics/pgf/contrib/tikzlings/tikzlings-rhinos.sty | 96 |
1 files changed, 65 insertions, 31 deletions
diff --git a/graphics/pgf/contrib/tikzlings/tikzlings-rhinos.sty b/graphics/pgf/contrib/tikzlings/tikzlings-rhinos.sty index dabbd15f17..af4c14603d 100644 --- a/graphics/pgf/contrib/tikzlings/tikzlings-rhinos.sty +++ b/graphics/pgf/contrib/tikzlings/tikzlings-rhinos.sty @@ -1,8 +1,8 @@ % !TeX root = ./examples/rhino.tex %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % -% The tikzlings-rhinos package (part of the tikzlings collection) -% A package to bring little rhinos 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-rhinos} - [2019/04/07 v0.2 Drawing rhinos in TikZ] +\ProvidesPackage{tikzlings-rhinos}[2020/04/22 version v0.3 Drawing rhinos in TikZ] \RequirePackage{tikz} \RequirePackage{tikzlings-addons} @@ -27,9 +23,14 @@ \rhino@draw% \end{scope}% \thing[#1]% + % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \csname rhinohookforeground\endcsname + \csname tikzlinghookforeground\endcsname + % } \newif\ifrhino@threeD +\newif\ifrhino@back \tikzset{ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -54,6 +55,7 @@ % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 3D/.code = \rhino@threeDtrue, + back/.code = \rhino@backtrue, } \def\rhino@draw{% @@ -71,7 +73,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} % @@ -93,50 +95,82 @@ % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % +% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\csname rhinohookbackground\endcsname +\csname tikzlinghookbackground\endcsname +% % Ears %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \rhino@part@draw[\rhino@body] (-0.1772, 2.0686) .. controls (-0.2057, 2.1602) and (-0.3552, 2.2076) .. (-0.3552, 2.1922) .. controls (-0.3552, 2.1922) and (-0.3694, 1.9615) .. (-0.2855, 1.9615) .. controls (-0.2264, 1.9462) and (-0.1772, 1.9462) .. (-0.1772, 2.0686) -- cycle; \rhino@part@draw[\rhino@body] (0.1772, 2.0686) .. controls (0.2057, 2.1602) and (0.3552, 2.2076) .. (0.3552, 2.1922) .. controls (0.3552, 2.1922) and (0.3694, 1.9615) .. (0.2855, 1.9615) .. controls (0.2264, 1.9462) and (0.1772, 1.9462) .. (0.1772, 2.0686) -- cycle; % +% Feet if back%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ifrhino@back + \begin{scope} + \clip (-0.5,0.4) rectangle (0.5,0.13); + \rhino@part@draw[\rhino@body] (-0.25,0.15) ellipse[x radius=0.16, y radius=0.17]; + \rhino@part@draw[\rhino@body] (0.25,0.15) ellipse[x radius=0.16, y radius=0.17]; + \end{scope} +\fi +% +% Nose if back %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ifrhino@back + \rhino@part@draw[\rhino@body!80!white] (0, 1.55) ellipse[x radius=0.36, y radius=0.2]; +\fi +% % Body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \rhino@part@draw[\rhino@body!55!white] ( 0.55, 0.8 ) .. controls ( 0.55 , 0.4) and ( 0.35, 0.19) .. ( 0.0, 0.19) .. controls (-0.35, 0.19) and (-0.55 , 0.4) .. (-0.55, 0.8 ) .. controls (-0.55 , 1.3) and (-0.35, 1.65) .. ( 0.0, 1.65) .. controls ( 0.35, 1.65) and ( 0.55 , 1.3) .. ( 0.55, 0.75) -- cycle; % +% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\csname rhinohookbelly\endcsname +\csname tikzlinghookbelly\endcsname +% % Arms %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\rhino@part@draw[\rhino@body,rotate around={90:(0.3,1.0)}] (0.3,1.0) ellipse (0.24 and 0.13); -\rhino@part@draw[\rhino@body,rotate around={-90:(-0.3,1.0)}] (-0.3,1.0) ellipse (0.24 and 0.13); +\ifrhino@back\else + \rhino@part@draw[\rhino@body] (0.3,1.0) ellipse[x radius=0.24, y radius=0.13, rotate=90]; + \rhino@part@draw[\rhino@body] (-0.3,1.0) ellipse[x radius=0.24, y radius=0.13, rotate=-90]; +\fi % % Head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\rhino@part@draw[\rhino@body!55!white] (0, 1.76) circle (0.36); +\rhino@part@draw[\rhino@body!55!white] (0, 1.76) circle[radius=0.36]; +% +% Show details only from the front %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ifrhino@back\else % % Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\fill[white] (-0.11, 1.83) ellipse (0.08 and 0.12); -\fill[white] (0.11, 1.83) ellipse (0.08 and 0.12); -\fill[black] (-0.105, 1.78) ellipse (0.04 and 0.07); -\fill[black] (0.105, 1.78) ellipse (0.04 and 0.07); +\fill[white] (-0.11, 1.83) ellipse[x radius=0.08, y radius=0.12]; +\fill[white] (0.11, 1.83) ellipse[x radius=0.08, y radius=0.12]; +\fill[black] (-0.105, 1.78) ellipse[x radius=0.04, y radius=0.07]; +\fill[black] (0.105, 1.78) ellipse[x radius=0.04, y radius=0.07]; % % Nose %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\rhino@part@draw[\rhino@body!80!white] (0, 1.55) ellipse (0.36 and 0.2); +\rhino@part@draw[\rhino@body!80!white] (0, 1.55) ellipse[x radius=0.36, y radius=0.2]; % % Horn %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \rhino@part@draw[white!95!yellow] (0, 1.7911) .. controls (-0.0231, 1.7372) and (-0.0463, 1.6832) .. (-0.0642, 1.6274) .. controls (-0.0687, 1.6132) and (-0.0724, 1.5981) .. (-0.0678, 1.5834) .. controls (-0.0603, 1.552) and (-0.0287, 1.5287) .. (0, 1.531) .. controls (0.0287, 1.5287) and (0.0603, 1.552) .. (0.0678, 1.5834) .. controls (0.0724, 1.5981) and (0.0687, 1.6132) .. (0.0642, 1.6274) .. controls (0.0463, 1.6832) and (0.0231, 1.7372) .. (0, 1.7911) -- cycle; % % Mouth %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \ifrhino@threeD - \draw[black,line width=\scalingfactor*0.4pt] (0.125, 1.5) arc [start angle=-50, end angle=-130, radius=0.2] ; - \else - \draw[\rhino@body!70!black,line width=\scalingfactor*0.4pt] (0.125, 1.5) arc [start angle=-50, end angle=-130, radius=0.2] ; - \fi - % + \draw[black,line width=\scalingfactor*0.4pt] (0.125, 1.5) arc [start angle=-50, end angle=-130, radius=0.2] ; +\else + \draw[\rhino@body!70!black,line width=\scalingfactor*0.4pt] (0.125, 1.5) arc [start angle=-50, end angle=-130, radius=0.2] ; +\fi +% % Feet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{scope} - \clip (-0.5,0.4) rectangle (0.5,0.13); - \rhino@part@draw[\rhino@body] (-0.25,0.15) ellipse (0.16 and 0.17); - \rhino@part@draw[\rhino@body] (0.25,0.15) ellipse (0.16 and 0.17); - \rhino@part@draw[\rhino@toes] (0.25,0.13) ellipse (0.05 and 0.1); - \rhino@part@draw[\rhino@toes] (0.13,0.11) ellipse (0.05 and 0.1); - \rhino@part@draw[\rhino@toes] (0.37,0.11) ellipse (0.05 and 0.1); - \rhino@part@draw[\rhino@toes] (-0.25,0.13) ellipse (0.05 and 0.1); - \rhino@part@draw[\rhino@toes] (-0.13,0.11) ellipse (0.05 and 0.1); - \rhino@part@draw[\rhino@toes] (-0.37,0.11) ellipse (0.05 and 0.1); + \clip (-0.5,0.4) rectangle (0.5,0.13); + \rhino@part@draw[\rhino@body] (-0.25,0.15) ellipse[x radius=0.16, y radius=0.17]; + \rhino@part@draw[\rhino@body] (0.25,0.15) ellipse[x radius=0.16, y radius=0.17]; + \rhino@part@draw[\rhino@toes] (0.25,0.13) ellipse[x radius=0.05, y radius=0.1]; + \rhino@part@draw[\rhino@toes] (0.13,0.11) ellipse[x radius=0.05, y radius=0.1]; + \rhino@part@draw[\rhino@toes] (0.37,0.11) ellipse[x radius=0.05, y radius=0.1]; + \rhino@part@draw[\rhino@toes] (-0.25,0.13) ellipse[x radius=0.05, y radius=0.1]; + \rhino@part@draw[\rhino@toes] (-0.13,0.11) ellipse[x radius=0.05, y radius=0.1]; + \rhino@part@draw[\rhino@toes] (-0.37,0.11) ellipse[x radius=0.05, y radius=0.1]; \end{scope} % -}
\ No newline at end of file +\fi +% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\csname rhinohookbody\endcsname +\csname tikzlinghookbody\endcsname +% +} |