超级 TeX 鸭

超级 TeX 鸭

我们在这个网站上有大量漂亮的 TikZ 绘制的图片。其中包括一些很棒的动物图片,例如 cfr 的 cat code。但它们分布在网站的各个地方。

由于我们确实想念一个地方来收集它们,这篇文章询问了用 TikZ 绘制的动物/宠物的精美示例。特别是那些关于鸭子受欢迎的。

各位鸭子朋友们,嘎嘎!

请不要太早关闭这个问题(我知道这有点不合常理,但还有其他著名的展示)。

答案1

在此处输入图片描述

\documentclass[tikz,border=5]{standalone}
\usepackage[prefix=]{xcolor-material}
\pgfmathdeclarerandomlist{material}{%
{Red}{Blue}{Green}}
\tikzset{%
  half clip/.code={
    \clip (0, -256) rectangle (256, 256);
  },
  color/.code=\colorlet{fill color}{#1},
  color alias/.code args={#1 as #2}{\colorlet{#1}{#2}},
  colors alias/.style={color alias/.list/.expanded={#1}},
  execute/.code={#1},
  on left/.style={.. on left/.style={#1}},
  on right/.style={.. on right/.style={#1}},
  split/.style args={#1 and #2}{
    on left ={color alias=fill color as #1},
    on right={color alias=fill color as #2, half clip}
  }
}
\newcommand\reflect[2][]{%
\begin{scope}[#1]\foreach \side in {-1, 1}{\begin{scope}
\ifnum\side=-1 \tikzset{.. on left/.try}\else\tikzset{.. on right/.try}\fi
\begin{scope}[xscale=\side]#2\end{scope}
\end{scope}}\end{scope}}

\tikzset{%
cat/.pic={
\tikzset{x=3cm/5,y=3cm/5,shift={(0,-1/3)}}
\useasboundingbox (-1,-1) (1,2);
\fill [BlueGrey900] (0,-2)
  .. controls ++(180:3) and ++(0:5/4) .. (-2,0)
  arc (270:90:1/5)
  .. controls ++(0:2) and ++(180:11/4) .. (0,-2+2/5);
\foreach \i in {-1,1}
  \scoped[shift={(1/2*\i,9/4)}, rotate=45*\i]{
    \clip [overlay] (0, 5/9) ellipse [radius=8/9];
    \clip [overlay] (0,-5/9) ellipse [radius=8/9];
    \fill [BlueGrey900] ellipse [radius=1];
    \clip [overlay] (0, 7/9) ellipse [radius=10/11];
    \clip [overlay] (0,-7/9) ellipse [radius=10/11];
    \fill [Purple100] ellipse [radius=1];
  };
\fill [BlueGrey900] ellipse [x radius=3/4, y radius=2];
\fill [BlueGrey100] ellipse [x radius=1/3, y radius=1];
\fill [BlueGrey900]
  (0,15/8) ellipse [x radius=1, y radius=5/6]
  (0, 8/6) ellipse [x radius=1/2, y radius=1/2]
  {[shift={(-1/2,-2)}, rotate= 10]  ellipse [x radius=1/3, y radius=5/4]}
  {[shift={( 1/2,-2)}, rotate=-10] ellipse [x radius=1/3, y radius=5/4]};
\fill [BlueGrey500]
  (-1/9,11/8) ellipse [x radius=1/5, y radius=1/5]
  ( 1/9,11/8) ellipse [x radius=1/5, y radius=1/5];
\fill [Purple100]
  (0,12/8)     ellipse [x radius=1/10, y radius=1/5]
  (0,12/8+1/9) ellipse [x radius=1/5 , y radius=1/10];
\foreach \i in {-1,1}
  \scoped[shift={(1/2*\i,2)}, rotate=35*\i]{
    \clip [overlay] (0, 1/7) ellipse [radius=2/7];
    \clip [overlay] (0,-1/7) ellipse [radius=2/7];
    \fill [Yellow50] ellipse [radius=1];
  };
\scoped{
  \clip (-1,-2) rectangle ++(2,1);
  \fill [BlueGrey900] (0,-2) ellipse [radius=1/2];
  \fill [Grey100]
    (-1/2,-2) ellipse [x radius=1/3, y radius=1/4]
    ( 1/2,-2) ellipse [x radius=1/3, y radius=1/4];
};
\foreach \i in {-1,1}
  \foreach \j in {-1,0,1}
    \fill [Grey100, shift={(0,11/8)}, xscale=\i, rotate=\j*15,
      shift=(0:1/2)]
      ellipse [x radius=1/3, y radius=1/64];
},
duck/.pic={
\tikzset{x=3cm/100,y=3cm/100, shift={(-50,-50)}}
\fill [Amber800] (58,28)
  .. controls (56,28) and (55,27) .. (55,26)
  .. controls (55,25) and (56,16) .. (55,15)
  .. controls (54,14) and (54,12) .. (55,11)
  .. controls (56,10) and (66, 7) .. (68, 7)
  .. controls (70, 7) and (75,15) .. (73,15)
  .. controls (71,15) and (62,13) .. (60,15)
  .. controls (58,17) and (60,25) .. (60,26)
  .. controls (60,27) and (59,28) .. (58,28)
  -- cycle;
\fill [BlueGrey900] (1,57)
  .. controls ( 0,51) and ( 4,44) .. (10,42)
  .. controls (16,40) and (23,40) .. (24,47)
  -- cycle;
\begin{scope}
\clip [preaction={fill=LightGreen}] (74,96)
  .. controls (66,96) and (62,92) .. (60,88)
  .. controls (58,84) and (58,76) .. (61,68)
  -- (76,68)
  .. controls (72,72) and (74,74) .. (75,75)
  .. controls (82,75) and (88,76) .. (88,84)
  .. controls (88,92) and (82,96) .. (74,96)
  -- cycle;
\fill [Grey100] (57,68) rectangle +(20,4);
\end{scope}
\fill [BlueGrey50]
  (14,48)
  .. controls (14,34) and (32,21) .. (53,21)
  .. controls (55,21) and (57,21) .. (61,22)
  .. controls (81,27) and (92,36) .. (92,48)
  -- cycle;
\fill [Brown500] (61,68)
  .. controls (65,52) and (68,40) .. (61,22)
  .. controls (84,26) and (92,36) .. (92,48)
  .. controls (92,60) and (82,65) .. (76,68)
  -- cycle;
\fill [BlueGrey400] (56,64)
  .. controls (45,64) and (40,60) .. (32,56)
  .. controls (24,52) and ( 8,52) .. ( 8,48)
  .. controls (8, 44) and (24,36) .. (40,36)
  .. controls (56,36) and (68,44) .. (72,48)
  .. controls (76,52) and (72,56) .. (68,60)
  .. controls (64,64) and (60,64) .. (56,64)
  -- cycle;
\fill [Amber500] (88,84)
  .. controls (86,84) and ( 87,82) .. (86,81)
  .. controls (85,80) and ( 80,79) .. (83,76)
  .. controls (86,73) and ( 95,71) .. (97,71)
  .. controls (99,71) and (100,72) .. (99,73)
  .. controls (98,74) and ( 92,77) .. (91,80)
  .. controls (90,83) and ( 90,84) .. (88,84)
  -- cycle;
\fill (78,87)
  .. controls (77,85) and (80,82) .. (83,84)
  .. controls (83,87) and (80,88) .. (78,87)
  -- cycle;
\fill [Amber700] (50,25)
  .. controls (48,25) and (47,24) .. (47,23)
  .. controls (47,22) and (48,13) .. (47,12)
  .. controls (46,11) and (46, 9) .. (47, 8)
  .. controls (48, 7) and (58, 4) .. (60, 4)
  .. controls (62, 4) and (67,12) .. (65,12)
  .. controls (63,12) and (54,10) .. (52,12)
  .. controls (50,14) and (52,22) .. (52,23)
  .. controls (52,24) and (51,25) .. (50,25)
  -- cycle;},
horse/.pic={
\begin{scope}[x=3cm/448,y=3cm/448]
\fill [Brown200]
  (-128,128)
  to [bend left]  ++(-16,-128) to [bend right] ++( 32,  8)
  to [bend left]  ++(-48, -96) to [bend right] ++( 56,   8)
  to [bend left]  ++(-64, -96) to [bend right]   (  0, -96)
  (128,128)
  to [bend left] ++(32,-128) to [bend right] ++(-40,40)
  to [bend left] ++( 0, -96) to [bend right] ++(-64,96);
\reflect[
  on left ={color alias=ears as Brown600},
  on right={color alias=ears as Brown700},
  color 0/.style={ears}, color 1/.style={BlueGrey900}
]{
  \foreach \j in {0, 1}
  \fill [color \j]
  [shift={(96,120)}, rotate=45, scale=9/10-\j/3, xscale=9/10]
  (-72,0)
  .. controls ++( 90: 8) and ++(180:16) .. ( 0, 48)
  .. controls ++(  0:16) and ++( 90:12) .. (88,  0)
  .. controls ++(270:12) and ++(  0: 8) .. ( 0,-48)
  .. controls ++(180: 8) and ++(270: 8) .. cycle;
}
\reflect[split=Brown600 and Brown700]{%
  \fill [fill color] (-56,-160)
  .. controls ++( 90:176) and ++(270: 96) .. (-112,  64)
  arc (180:0: 112 and 112)
  .. controls ++(270: 96) and ++( 90:176) .. (  56,-160) -- cycle;
}
\reflect[split=Grey50 and Grey200]{%
  \fill [fill color] (0,-48)
    .. controls ++(135:48) and ++(225:48) .. (0,168)
    .. controls ++(315:48) and ++( 45:48) .. cycle;
}

\reflect[split=Brown50 and Brown100]{%
  \fill [fill color] (0,-164) ellipse [x radius=56, y radius=56];
}
\reflect[split=Brown200 and Brown300]{%
  \fill [fill color] (0,-164) ellipse [x radius=48, y radius=40];
}
\reflect[split=Brown50 and Brown100]{%
  \fill [fill color] (0,-144) ellipse [x radius=64, y radius=48];
}
\reflect[split=Brown50 and Brown100]{
  \fill [fill color]  (36, -128) ellipse [x radius=24, y radius=40];
  \fill [BlueGrey900] (36, -128) ellipse [x radius=12, y radius=24];
}
\fill [BlueGrey900]
  (-72, 64) ellipse [radius=20]
  ( 72, 64) ellipse [radius=20];
\fill [Brown200]
  (0,192)
  .. controls ++(180:64) and ++( 90:64) .. (-128, 64)
  .. controls ++( 60:16) and ++(180:16) .. ( -64,128)
   to [bend left]  (-80,88)
   to [bend right] (  0, 128)
   to [bend left]  (-16,  64)
   .. controls ++( 0:64) and ++(270:32) .. (96,144)
   .. controls ++(90:32) and ++(  0:64) .. cycle;
\end{scope}},
chimpanzee/.pic={
\tikzset{x=3cm/3.5,y=3cm/3.5, shift={(0,1/4)}}
\fill [BlueGrey700] (165:5/4 and 1) ellipse [radius=1/2];
\fill [Pink100]     (165:5/4 and 1) ellipse [radius=1/3];
\fill [BlueGrey700]
  (0,-1/2) ellipse [x radius=1, y radius=4/3]
  (0,   0) ellipse [x radius=4/3, y radius=1];
\scoped{
  \clip(0,-2) rectangle(9/5,1);
  \fill [BlueGrey900] (15:5/4 and 1) ellipse [radius=1/2];
  \fill [Pink200]     (15:5/4 and 1) ellipse [radius=1/3];
  \fill [BlueGrey900]
    (0,-1/2) ellipse [x radius=1, y radius=4/3]
    (0,   0) ellipse [x radius=4/3, y radius=1];
}
\fill [Pink100]            (  0,-2/3) ellipse [x radius=5/6, y radius=  1];
\fill [Pink100, xscale=-1] (1/2,   0) ellipse [x radius=3/5, y radius=2/3];
\fill [Pink100, xscale= 1] (1/2,   0) ellipse [x radius=3/5, y radius=2/3];
\scoped{
  \clip(0,-2) rectangle(9/5,1);
  \fill [Pink200]            (  0,-2/3) ellipse [x radius=5/6, y radius=  1];
  \fill [Pink200, xscale=-1] (1/2,   0) ellipse [x radius=3/5, y radius=2/3];
  \fill [Pink200, xscale= 1] (1/2,   0) ellipse [x radius=3/5, y radius=2/3];
}
\foreach \i in {-1,1}
  \fill [BlueGrey900, xscale=\i] (1/2,0) ellipse [radius=1/4];
\fill [Pink300]
  (-1/7,-2/3) ellipse [radius=1/9]
  ( 1/7,-2/3) ellipse [radius=1/9];
\fill [Pink300]
  (-1/2,-1) arc (180:360:1/2 and 1/8) arc (360:180:1/2 and 1/4);
},
shark/.pic={
\tikzset{x=3cm/22,y=3cm/22,shift={(-8,-11)}}
\fill [BlueGrey200]
  (2,16.75) -- ++(0.5,-1) -- ++(0.5,1) -- cycle
  (3,16.25) -- ++(0.5,-1) -- ++(0.5,1) -- cycle
  (1,17)    -- ++(0.5,-1) -- ++(0.5,1) -- cycle
  (2,15.5)  -- ++(-.5,-1) -- ++(1,0) -- cycle
  (3,15)    -- ++(-.5,-1) -- ++(1,0) -- cycle;
\fill [BlueGrey700] (6,12)
  .. controls (5,11) and (5,8)  .. (6,7)
  .. controls (7,8)  and (7,9)  .. (8,10)
  .. controls (8,11) and (7,12) .. (6,12)-- cycle;
\fill [BlueGrey500] (0,20)
  .. controls (0,19)  and (0,18)  .. (1,17)
  .. controls (3,16)  and (4,16)  .. (4,15)
  .. controls (4,14)  and (2,15)  .. (1,15)
  .. controls (2,13)  and (3,12)  .. (5,10)
  .. controls (7,8)   and (11,6)  .. (14,5)
  .. controls (14,3)  and (14,1)  .. (15,0)
  .. controls (15,2)  and (15,3)  .. (16,4)
  .. controls (17,5)  and (18,6)  .. (20,6)
  .. controls (19,7)  and (16,7)  .. (15,6)
  .. controls (14,10) and (11,15) .. (9,17)
  .. controls (7,19)  and (3,20)  .. (0,20) -- cycle;
\fill [BlueGrey100] (0,20)
  .. controls (0,19) and (0,18) .. (1,17)
  .. controls (3,16) and (4,16) .. (4,15)
  .. controls (4,14) and (2,15) .. (1,15)
  .. controls (2,13) and (3,12) .. (5,10)
  .. controls (7,8)  and (11,6) .. (14,5)
  .. controls (13,8) and (7,8)  .. (6,12)
  .. controls (5,16) and (2,19) .. (0,20) -- cycle;
\fill [BlueGrey500] (3,13)
  .. controls (2,12) and (2,9)  .. (3,8)
  .. controls (4,9)  and (4,10) .. (5,11)
  .. controls (5,12) and (4,13) .. (3,13) -- cycle;
\fill [BlueGrey500] (9,18)
  .. controls (8,18)  and (7.5,17.5) .. (7,17)
  .. controls (7,16)  and (9,14)     .. (10,14)
  .. controls (10,15) and (11,17)    .. (12,17)
  .. controls (11,18) and (10,18)    .. (9,18) -- cycle;
\fill [BlueGrey800] (6,17.5) circle [radius=0.5];
},
squid/.pic={
\begin{scope}[x=3cm/480,y=3cm/480]
\useasboundingbox (-256, -256) (256, 256);
\reflect[split={DeepOrange500 and DeepOrange700}]{
  \fill [fill color] (0,96) ellipse [x radius=96, y radius=128];
  \fill [fill color]
    (72,-16)
    .. controls ++(270:72) and ++(270:40) .. ++(108,  -16)
    .. controls ++( 90:64) and ++(270:64) .. ++(-40,128)
    .. controls ++( 90:32) and ++(270:32) .. ++( 40, 96)
    arc (180:0:4)
    .. controls ++(270: 32) and ++( 90: 32) .. ++(-24, -96)
    .. controls ++(270: 64) and ++( 90: 64) .. ++( 56,-128)
    .. controls ++(270:128) and ++(270:160) ..   (  0, -16);
  \fill [fill color]  (64, 16) circle [radius=48];
  \fill [Grey50]      (64, 16) circle [radius=32];
  \fill [BlueGrey900] (64, 16) circle [radius=12];
  \fill [fill color]  (-4, -20)
    .. controls ++(270:256) and ++(225: 64) .. (128,-192)
    arc (315:495:4)
    .. controls ++(210: 64) and ++(270:192) .. (48, -40);
}
\fill [DeepOrange900]
  (-40,-40) arc (180:360:40 and 16) arc (360:180:40 and 40);
\fill [DeepOrange300]
  (-32,108) circle [radius=16] (-40,160) circle [radius=12]
  (-20,196) circle [radius= 8]  ( 40,160) circle [radius=16]
  ( 64,120) circle [radius= 8]  ( 40,100) circle [radius=12];
\end{scope}
},
owl/.pic={
\begin{scope}[x=3cm/512,y=3cm/512]
\foreach \i in {-3,...,3}
  \fill [Brown900, shift={(0,128)}, rotate=-\i*13]
    (0,0) arc (90:450:48 and 144);
\foreach \i in {-1,...,1}
  \fill [Brown900, shift={(0,32)}, rotate=-\i*10]
    (0,0) arc (90:450:32 and 128);
\reflect[split={Brown700 and Brown800}]{
  \fill [fill color] (0,224)
  .. controls ++(180:96) and ++( 90:96) .. (-112,32)
  .. controls ++(270:96) and ++(180: 0) .. (0,-148)
  .. controls ++(  0: 0) and ++(270:96) .. ( 112,32)
  .. controls ++( 90:96) and ++(  0:96) .. cycle;
}
\reflect[
  on left ={colors alias={
    outer eye as Brown600, eyebrow as Brown800, chest as Brown100}},
  on right={colors alias={
    outer eye as Brown700, eyebrow as Brown900, chest as Brown200},
    half clip}]{
  \fill [outer eye]   (64, 128) circle [radius=80];
  \fill [Grey100]     (64, 128) circle [radius=40];
  \fill [BlueGrey900] (64, 128) circle [radius=20];
  \fill [eyebrow]  (0,112)
    .. controls ++( 90:128) and ++(270:64) .. (160,240)
    .. controls ++(270:112) and ++( 90:64) .. cycle;
  \fill [chest] 
    (0,-140)
    .. controls ++(135:32) and ++(270:32) .. (-64,-40)
    arc (180:0:64)
    .. controls ++(270:32) and ++( 45:32) .. cycle;
}
\reflect[
  on left ={colors alias={
    beak as Amber500, perch as BlueGrey800, foot as Brown600, 
    talon as Amber500}},
  on right={colors alias={
    beak as Amber700, perch as BlueGrey900, foot as Brown700, 
      talon as Amber700}, half clip}]{
  \fill [beak] (0,28)
    .. controls ++(135:32) and ++(270:16) .. (-32,64)
    arc (180:0:32)
    .. controls ++(270:16) and ++(45:32) .. cycle;
  \fill [perch]
    (-192,-128) arc (90:270:12) -- ++(384,0) arc (270:450:12) -- cycle;
  \tikzset{shift={(0, -128)}}
  \fill [foot]
    (3, 0) arc (180:0:36 and 24) -- cycle;
  \foreach \j in {-1,0,1}
    \scoped[shift={(40+20*\j,0)}]\fill [talon]
       (10,0) arc (0:180:10) -- (0,-16) -- cycle;
}
\end{scope}},
cow/.pic={
\begin{scope}[x=3cm/480,y=3cm/480]
\reflect[]{
\tikzset{shift={(32,140)}, rotate=-45}
  \fill [BlueGrey100] (0,0) arc (0:90:32 and 96) arc (90:0:96);
  \fill [BlueGrey200] (32,0) arc (0:90:64 and 96) arc (90:0:96);
}
\foreach \i in {-1, 1}\foreach \j in {0, 1}
\fill \ifnum\j=0 \ifnum \i=-1 [BlueGrey700] \else [BlueGrey800] \fi\else [BlueGrey900] \fi
  [xscale=\i, shift={(128,88)}, rotate=10, scale=1-\j/3]
  (-72,0)
  .. controls ++( 90: 8) and ++(180:16) .. ( 0, 48)
  .. controls ++(  0:16) and ++( 90:12) .. (88,  0)
  .. controls ++(270:12) and ++(  0: 8) .. ( 0,-48)
  .. controls ++(180: 8) and ++(270: 8) .. cycle;
\reflect[split={BlueGrey700 and BlueGrey800}]{%
  \fill [fill color] (-64,-160)
  .. controls ++( 90:144) and ++(270: 64) .. (-120,  64)
  arc (180:0: 120 and 112)
  .. controls ++(270: 64) and ++( 90:144) .. (  64,-160) -- cycle;
}
\reflect[split=Grey50 and Grey200]{%
  \fill [fill color](-64,-160)
    .. controls ++( 75:144) and ++(270: 64) .. (-16,  64)
    .. controls ++( 90: 32) and ++(180: 72) .. (  0, 168)
    .. controls ++(  0: 72) and ++( 90: 32) .. ( 16,  64)
    .. controls ++(270: 64) and ++(105:144) .. ( 64,-160) -- cycle;
}
\reflect[split=Pink100 and Pink200]{
  \fill [fill color] (0,-160) ellipse [x radius=64, y radius=56];
}
\fill [Pink300] (0, -160) ellipse [x radius=48, y radius=40];
\reflect[split=Pink100 and Pink200]{
  \fill [fill color] (0,-128) ellipse [x radius=80, y radius=56];
}
\fill [Pink300]
  (-32, -128) ellipse [radius=16]
  ( 32, -128) ellipse [radius=16];
\fill [BlueGrey900]
  (-64, 64) ellipse [radius=24]
  ( 64, 64) ellipse [radius=24];
\end{scope}
},
bee/.pic={
\begin{scope}[x=3cm/480,y=3cm/480, rotate=-45, shift=(270:48)]
\reflect[
  on left= {colors alias={body as BlueGrey800, stripes as Amber500}},
  on right={colors alias={body as BlueGrey900, stripes as Amber700}, half clip},
  lower wing/.style={fill=BlueGrey100}, upper wing/.style={fill=BlueGrey50}]{
  \fill [body] (0,-160)
    .. controls ++(120:64) and ++(270:64) .. (-88, -16)
    .. controls ++( 90:64) and ++(225:64) .. (  0, 128)
    .. controls ++(315:64) and ++( 90:64) .. ( 88, -16)
    .. controls ++(270:64) and ++( 60:64) .. cycle;
  \fill [body] (0,128) ellipse [x radius=80, y radius=56];
  \fill [body]
    (32,160) arc (180:90:64) -- ++(6,-6) coordinate [midway] (@)
    arc (90:180:64) -- cycle;
  \fill [body] (@) circle [radius=12];
  \begin{scope}
    \clip (0,-160)
      .. controls ++(120:64) and ++(270:64) .. (-88, -16)
      .. controls ++( 90:64) and ++(225:64) .. (  0, 128)
      .. controls ++(315:64) and ++( 90:64) .. ( 88, -16)
      .. controls ++(270:64) and ++( 60:64) .. cycle;
    \foreach \i in {0,...,2}
      \fill [stripes] (-256, -160 + \i*80) rectangle ++(512, 40);
  \end{scope}
  \foreach \s [count=\i from -1] in {lower wing, upper wing}
    \fill [style=\s, shift={(16,56)}, rotate=\i*32]
      (0,0)
      .. controls ++( 30:64) and ++(180:32) .. (128,56)
      arc (90:-90:56)
      .. controls ++(180:32) and ++(330:64) .. cycle;
}
\end{scope}},
monkey/.pic={%
\begin{scope}[x=3cm/448,y=3cm/448]
\useasboundingbox (-256, -256) (256, 256);
\reflect[
  on left ={ color alias/.list={skin as Brown700, ears as Pink100}},
  on right={ color alias/.list={skin as Brown900, ears as Pink200}, half clip }
]{
  \fill [skin] (140, 80) circle  [radius=56];
  \fill [ears] (140, 80) circle  [radius=32];
  \fill [skin] (  0, 72) ellipse [x radius=140, y radius=112];
  \fill [skin] (  0,-64) ellipse [x radius=172, y radius=112];
}
\reflect[
  on left ={color alias/.list={face as Pink100}},
  on right={color alias/.list={face as Pink200}, half clip}
  ]{
  \fill [face] (0,-64) ellipse [x radius=140, y radius=88];
  \fill [face] (40,64) ellipse [radius=64];
}
\reflect{
  \fill [BlueGrey900] (40, 64) circle [radius=24];
  \fill [Pink300]     (24,-16) circle [radius=16];
}
\fill [Pink300]
  (-96,-72) arc (180:360:96 and 32) arc (360:180:96 and 56);
\end{scope}},
donkey/.pic={
\begin{scope}[x=3cm/480,y=3cm/480]
\reflect[
  on left ={color alias=ears as BlueGrey500},
  on right={color alias=ears as BlueGrey700},
  outer ear/.style={fill=ears}, inner ear/.style={fill=BlueGrey900}
]{
  \foreach \s [count=\j from 0] in {outer ear, inner ear}
  \fill [style=\s]
  [shift={(88,120)}, rotate=75, scale=9/10-\j/3, xscale=3/2]
  (-72,0)
  .. controls ++( 90: 8) and ++(180:16) .. ( 0, 48)
  .. controls ++(  0:16) and ++( 90:12) .. (88,  0)
  .. controls ++(270:12) and ++(  0: 8) .. ( 0,-48)
  .. controls ++(180: 8) and ++(270: 8) .. cycle;
}
\reflect[split=BlueGrey500 and BlueGrey700]{%
  \fill [fill color] (-56,-160)
  .. controls ++( 90:112) and ++(270: 128) .. (-112,  48)
  arc (180:0:112 and 96)
  .. controls ++(270: 128) and ++( 90:112) .. (  56,-160) -- cycle;
}
\reflect[split=Grey500 and Grey600]{%
  \fill [fill color] (0,-164) ellipse [x radius=56, y radius=56];
}
\reflect[split=Grey700 and Grey800]{%
  \fill [fill color] (0,-164) ellipse [x radius=48, y radius=40];
}
\reflect[split=Grey500 and Grey600]{%
  \fill [fill color] (0,-144) ellipse [x radius=64, y radius=48];
  \fill [fill color]  (36, -128) ellipse [x radius=24, y radius=40];
  \fill [BlueGrey900] (36, -128) ellipse [x radius=12, y radius=24];
}
\fill [BlueGrey900]
  (-72, 40) ellipse [radius=20]
  ( 72, 40) ellipse [radius=20]
  (-8,160)
  to [bend left]  ++( 16, 32) to [bend right] ++( 16,-48)
  to [bend left]  ++( 16, 32) to [bend right] ++( 16,-48)
  to [bend right] ++(-32,-48) to [bend left]  ++(-16, 32)
  to [bend right] ++(-32,-32) to [bend left]  ++(  0, 32)
  to [bend right] ++(-32,-16) to [bend left]  ++( 16, 40)
  to [bend right] ++(-16, 32) to [bend left]  cycle;
\end{scope}},
chipmunk/.pic={
\begin{scope}[x=3cm/448,y=3cm/448]
\reflect[
  on left ={colors alias={fur as Brown500, ear as Pink100}},
  on right={colors alias={fur as Brown700, ear as Pink200}, half clip}
]{
  \begin{scope}[shift={(88,56)}, rotate=-10]
  \fill [fur] (0,0) arc (270:90:40 and 64) arc (90:-90:24 and 64);
  \fill [ear] (0,0) arc (270:90:32 and 48) arc (90:-90:16 and 48);
  \end{scope}
  \fill [fur] ( 0,  -8) ellipse [x radius=128, y radius=176];
  \fill [fur] (96,-72) ellipse [x radius= 96, y radius= 88];
}
\reflect[split={Grey300 and Grey400}]{
  \fill [fill color, shift={(72,-80)}, yscale=-1] (-96,0) 
  arc (180:270: 96 and 80) arc (270:360:112 and 88)
  to [bend left ] ++(-20,-8) 
  to [bend right] ++(12,32)
  to [bend left ] (30:96 and 80)
  arc (30:180:96 and 80) -- cycle;
  \fill [fill color] (56,16) [rotate=-5] ellipse [x radius=48, y radius=96];
}
\reflect[split={Brown100 and Brown200}]{
  \fill [Grey100] (4,-56) -- ++(0,-64) -- ++(24,0) -- ++(16,64) -- cycle;
  \fill [fill color] (0,-40) ellipse [x radius=80, y radius=48];
  \fill [fill color] (0,-48) ellipse [x radius=64, y radius=56];
}
\reflect[split={BlueGrey800 and BlueGrey900}]{
  \fill [fill color]
    (0,-56) 
    .. controls ++(  0:16) and ++(315:16) .. ( 36,0)
    .. controls ++(135:16) and ++( 45:16) .. (-36,0)
    .. controls ++(225:16) and ++(180:16) .. cycle;
  \fill [BlueGrey900] (56, 40) circle [radius=20];
}
\end{scope}},
ladybird/.pic={
\begin{scope}[x=3cm/512,y=3cm/512]
\tikzset{rotate=-45}
\reflect[split=BlueGrey800 and BlueGrey900]{
  \fill [fill color] (0,16) ellipse [x radius=96, y radius=144];
  \foreach \i [count=\n from 0] in {1,0,-1} \foreach \j in {0,1}
  \fill [fill color, shift=(40-\n*40:96 and 144), 
    rotate=30-\n*40, shift=(0:\j*60), 
    xscale=1-\j/3, yscale=1-\j/6, rotate=\i*\j*15]
    (0,4) -- ++(64,4) -- ++(0,-16) -- (0,-4) -- cycle;
}
\reflect[
  on left ={colors alias={spot as Grey800, wing as Red600}},
  on right={colors alias={spot as Grey900, wing as Red900}, half clip}
]{
\clip [preaction={fill=wing}] 
  (0,0 |- 45:128 and 144) -- (45:128 and 144) arc (45:-80:128 and 144);
\fill [spot] 
  ( 0, 96) circle [radius=32]
  (64, 64) circle [radius=16]
  (24,  0) circle [radius=24]
  (96, 16) circle [radius=12]
  (72,-64) circle [radius=20];
}
\reflect[
  on left ={colors alias={body as BlueGrey800, eye as Grey100}},
  on right={colors alias={body as BlueGrey900, eye as Grey200}, half clip}
]{
  \fill [body]
    (16,160) arc (180:90:64) -- ++(4,-4) coordinate [midway] (@)
    arc (90:180:64) -- cycle;
  \fill [body] (@) circle [radius=8];
  \clip [postaction={fill=body}] (80,128) 
    .. controls ++( 90:32) and ++(  0:32) .. (  0,192)
    .. controls ++(180:32) and ++( 90:32) .. (-80,128)
    .. controls ++(270:32) and ++(180:32) .. (  0,96)
    .. controls ++(  0:32) and ++(270:32) .. cycle;
  \fill [eye] (64,160) circle [radius=24];
}
\end{scope}},
dog/.pic={
\begin{scope}[x=3cm/480,y=3cm/480]
\useasboundingbox (-256, -256) (256, 256);
\reflect[split=Brown400 and Brown500]{
  \fill [fill color] (0,-64) ellipse [x radius=160, y radius=144];
  \fill [fill color] (0, 32) ellipse [x radius=128, y radius=112];
  \fill [fill color] (32,96)
  .. controls ++( 75:128) and ++(105:128) .. ++(192,  0)
  .. controls ++(285: 96) and ++(285: 96) .. ++(-80,-32)
  .. controls ++(105: 64) and ++( 75: 32) .. cycle;
}
\reflect[split={Grey100 and Grey200}]{
  \clip (0,-64) ellipse [x radius=160, y radius=144];
  \fill [fill color](0,-224) 
    .. controls ++(  0:64) and ++(270:64) .. ++(96,64)
    .. controls ++( 90:64) and ++(270:64) .. ++(-96,192)
    .. controls ++(270:64) and ++( 90:64) .. ++(-96,-192)
    .. controls ++(270:64) and ++(180:64) .. cycle;
}
\reflect[split={Pink100 and Pink200}]{
  \fill [fill color](0,-192) ellipse [x radius=28, y radius=32];
}
\reflect[split={BlueGrey800 and BlueGrey900}]{
  \fill [fill color](0,-144) 
    .. controls ++(  0:20) and ++(315:20) .. ++( 40,64)
    .. controls ++(135:20) and ++( 45:20) .. ++(-80, 0)
    .. controls ++(225:20) and ++(180:20) .. cycle;
  \fill [BlueGrey900] (56, 0) circle [radius=20];
  \fill [fill color] (-8,-112)
  -- ++(16,0) -- ++(0,-32) arc (180:360:24)
  arc (180:0:8) arc (360:180:40);
}
\end{scope}}
}
\begin{document}
\begin{tikzpicture}
\foreach \animal [count=\i from 0, evaluate={\x=mod(\i,3)*5; \y=-floor(\i/3)*5;}]
  in {bee,cat,chimpanzee,chipmunk,cow,dog,donkey,duck,horse,ladybird,
      monkey,owl,shark,squid}{
\pgfmathrandomitem\materialColor{material}
\scoped[shift={(\x,\y)}]{
\fill [fill=\materialColor50] circle [radius=2];
\pic {\animal};
\node [below]at (0, -2) {\ttfamily\animal};
}}
\end{tikzpicture}
\end{document}

答案2

超级 TeX 鸭

点击此处获取正确的配乐

\documentclass{standalone}
\usepackage{tikzducks}

\begin{document}

\begin{tikzpicture}
    \definecolor{superblue}{RGB}{28,82,156}
    \definecolor{superred}{RGB}{255,70,70}
    \duck[tshirt=superblue, bill=superred!40!brown, longhair=brown!70!red!80!black, cape=superred]
    \begin{scope}[xscale=0.01, yscale=-0.01, yshift=-7200, xshift=100]
        \path[fill=yellow!70!brown,line join=miter,line cap=butt,miter limit=4.00,line width=0.280pt] 
        (19.1501,169.8999) .. controls (22.6621,185.2587) and (26.1741,200.6174) .. (29.6861,215.9762) .. controls (48.0064,202.1310) and (66.3266,188.2858) .. (84.6469,174.4406) .. controls (82.8840,171.7633) and (83.5049,166.2477) .. (79.3603,166.0137) .. controls (62.9510,164.8761) and (46.5417,163.7384) .. (30.1324,162.6008) .. controls (26.4716,165.0339) and (22.8108,167.4669) .. (19.1501,169.8999) -- cycle;
        \path[fill=superred,line join=miter,line cap=butt,miter limit=4.00,line width=0.280pt] (30.3892,160.9069) .. controls (26.0015,163.8232) and (21.6137,166.7395) .. (17.2258,169.6556) .. controls (20.9503,185.9422) and (24.6743,202.2289) .. (28.3985,218.5155) .. controls (47.8256,203.8338) and (67.2526,189.1521) .. (86.6798,174.4706) .. controls (84.9008,171.2752) and (85.0408,167.0414) .. (82.1598,164.4961) .. controls (64.9030,163.2997) and (47.6461,162.1033) .. (30.3892,160.9069) -- cycle(29.8755,164.2947) .. controls (32.3633,163.8271) and (33.8198,165.0958) .. (31.6902,167.0082) .. controls (28.9838,171.6934) and (26.2774,176.3786) .. (23.5710,181.0638) .. controls (23.1554,177.2602) and (20.9993,173.6756) .. (21.6242,169.7787) .. controls (24.3746,167.9507) and (27.1251,166.1227) .. (29.8755,164.2947) -- cycle(76.7801,167.5466) .. controls (80.4604,166.5323) and (82.8325,171.9430) .. (81.6657,174.6950) .. controls (79.5366,177.3566) and (76.2910,178.8331) .. (73.7649,181.0982) .. controls (72.5330,181.7268) and (68.5768,185.8417) .. (70.3548,182.6185) .. controls (72.4966,177.5945) and (74.6383,172.5705) .. (76.7801,167.5466) -- cycle(39.6974,171.1477) .. controls (42.2965,171.3279) and (44.8956,171.5081) .. (47.4946,171.6883) .. controls (42.6972,180.8632) and (38.3661,190.3004) .. (33.2358,199.2896) .. controls (31.4746,202.1278) and (26.2131,201.6511) .. (27.3590,197.6295) .. controls (26.4820,193.7940) and (25.6049,189.9585) .. (24.7279,186.1229) .. controls (27.6766,181.5339) and (29.9816,176.4251) .. (33.7500,172.4331) .. controls (35.4497,171.2057) and (37.6550,170.8843) .. (39.6974,171.1477) -- cycle(55.7860,172.2631) .. controls (59.7578,172.8436) and (63.9574,172.1465) .. (67.7430,173.7593) .. controls (69.7610,177.0238) and (67.0777,180.4981) .. (66.1501,183.6430) .. controls (65.7213,187.4117) and (62.3605,189.8584) .. (59.5157,191.9592) .. controls (54.5406,195.4546) and (49.8125,199.2863) .. (44.9199,202.8973) .. controls (40.7783,202.6790) and (42.3696,197.6021) .. (43.9068,195.3714) .. controls (47.1153,189.7669) and (49.8067,183.8583) .. (52.8097,178.1329) .. controls (53.8018,176.1763) and (54.7939,174.2197) .. (55.7860,172.2631) -- cycle(29.0428,204.9923) .. controls (32.9677,205.3274) and (36.8926,205.6624) .. (40.8175,205.9975) .. controls (37.3725,207.7884) and (35.2074,211.6132) .. (31.2514,212.4846) .. controls (29.5641,210.3889) and (29.9644,207.4023) .. (29.0428,204.9923) -- cycle;
        \path[draw=black,line join=miter,line cap=butt,miter limit=4.00,line width=0.280pt] (30.3892,160.9069) .. controls (26.0015,163.8232) and (21.6137,166.7395) .. (17.2258,169.6556) .. controls (20.9503,185.9422) and (24.6743,202.2289) .. (28.3985,218.5155) .. controls (47.8256,203.8338) and (67.2526,189.1521) .. (86.6798,174.4706) .. controls (84.9999,171.3774) and (84.7278,166.4000) .. (82.1598,164.4961) .. controls (64.9030,163.2997) and (47.6461,162.1033) .. (30.3892,160.9069) -- cycle(29.8755,164.2947) .. controls (31.3768,164.5060) and (34.3214,163.9495) .. (32.2315,166.0711) .. controls (29.3447,171.0687) and (26.4578,176.0663) .. (23.5710,181.0638) .. controls (23.1458,177.3914) and (20.8902,172.9885) .. (21.6242,169.7787) .. controls (24.3746,167.9507) and (27.1251,166.1227) .. (29.8755,164.2947) -- cycle(76.7801,167.5466) .. controls (80.5319,166.6672) and (81.1722,170.3187) .. (82.2166,173.1606) .. controls (81.7613,176.2320) and (78.2235,177.2884) .. (76.2097,179.2506) .. controls (74.0365,180.8929) and (71.8633,182.5353) .. (69.6901,184.1776) .. controls (72.0534,178.6339) and (74.4168,173.0903) .. (76.7801,167.5466) -- cycle(39.6974,171.1477) .. controls (42.2965,171.3279) and (44.8956,171.5081) .. (47.4946,171.6883) .. controls (42.8362,180.7076) and (38.4557,189.8707) .. (33.6002,198.7877) .. controls (31.8670,201.5779) and (26.5743,202.6315) .. (27.4439,198.0007) .. controls (26.5386,194.0414) and (25.6332,190.0822) .. (24.7279,186.1229) .. controls (27.5616,181.6166) and (29.9448,176.7409) .. (33.4174,172.6921) .. controls (35.1561,171.2620) and (37.5122,170.8656) .. (39.6974,171.1477) -- cycle(55.7860,172.2631) .. controls (59.7604,172.8439) and (63.9586,172.1470) .. (67.7430,173.7593) .. controls (70.1370,177.4786) and (66.0436,181.5940) .. (65.7890,185.4784) .. controls (63.4243,190.1696) and (58.3136,192.3876) .. (54.4844,195.6692) .. controls (51.2962,198.0785) and (48.1080,200.4879) .. (44.9199,202.8973) .. controls (40.3492,202.7990) and (42.6086,196.8794) .. (44.3878,194.7420) .. controls (48.1872,187.2490) and (51.9866,179.7561) .. (55.7860,172.2631) -- cycle(29.0428,204.9923) .. controls (32.9677,205.3274) and (36.8926,205.6624) .. (40.8175,205.9975) .. controls (37.3797,207.7837) and (35.1608,211.6508) .. (31.2514,212.4846) .. controls (29.7442,210.8968) and (29.8959,207.3157) .. (29.0428,204.9923) -- cycle;
    \end{scope}
\end{tikzpicture}

\end{document}

在此处输入图片描述 在此处输入图片描述

蝙蝠鸭

该符号借用自https://tex.stackexchange.com/a/47394/36296

\documentclass{standalone}
\usepackage{tikzducks}

\begin{document}

\begin{tikzpicture}
    \duck[body=black!60!gray, bill=orange!50!gray,cape=black!50!gray]
    \fill[black!60!gray,rotate=210, xshift=-60, yshift=-72] (0.40,1.20)--(0.50,0.90)--(0.70,1.20);
    \fill[black!60!gray,rotate=150, xshift=-15, yshift=-97] (0.40,1.20)--(0.50,0.90)--(0.70,1.20);
    %Following logo based on https://tex.stackexchange.com/a/47394/36296
    \begin{scope}[scale=0.05, rotate=-5, xshift=270, yshift=400]
        \filldraw[fill=yellow] (0,0) ellipse (7.0 and 4.3);
    \draw[line width=0.1mm] (0,0) ellipse (6.5 and 3.8);
    \draw[line width=0.1mm,dashed,white] (0,0) ellipse (6.0 and 3.3);
        \pgfsetlinewidth{0.1mm}
        \pgfpathmoveto{\pgfpoint{0}{2.7cm}}
        \pgfpathlineto{\pgfpoint{0.5cm}{2.7cm}}
        \pgfpathlineto{\pgfpoint{1cm}{3.25cm}}
        \pgfpathcurveto{\pgfpoint{1.2cm}{1.3cm}}{\pgfpoint{1.3cm}{1cm}}{\pgfpoint{2cm}{1cm}}
        \pgfpathcurveto{\pgfpoint{3cm}{1cm}}{\pgfpoint{3cm}{2.2cm}}{\pgfpoint{2cm}{3.1cm}}
        \pgfpatharcto{6cm}{3.3cm}{0}{0}{0}{\pgfpoint{3.2cm}{-2.8cm}}
        \pgfpathcurveto{\pgfpoint{4cm}{-2cm}}{\pgfpoint{4cm}{0}}{\pgfpoint{2.2cm}{-1.8cm}}
        \pgfpathcurveto{\pgfpoint{1.5cm}{-1cm}}{\pgfpoint{1cm}{-1cm}}{\pgfpoint{0cm}{-3.2cm}}
        \pgftransformcm{-1}{0}{0}{1}{\pgfpointorigin} % This is the coordinate change from x to -x
        \pgfpathcurveto{\pgfpoint{1cm}{-1cm}}{\pgfpoint{1.5cm}{-1cm}}{\pgfpoint{2.2cm}{-1.8cm}}
        \pgfpathcurveto{\pgfpoint{4cm}{0cm}}{\pgfpoint{4cm}{-2cm}}{\pgfpoint{3.2cm}{-2.8cm}}
        \pgfpatharcto{6cm}{3.3cm}{0}{0}{1}{\pgfpoint{2cm}{3.1cm}}
        \pgfpathcurveto{\pgfpoint{3cm}{2.2cm}}{\pgfpoint{3cm}{1cm}}{\pgfpoint{2cm}{1cm}}
        \pgfpathcurveto{\pgfpoint{1.3cm}{1cm}}{\pgfpoint{1.2cm}{1.3cm}}{\pgfpoint{1cm}{3.25cm}}
        \pgfpathlineto{\pgfpoint{0.5cm}{2.7cm}}
        \pgfpathclose
        \pgfusepath{fill,stroke}   
    \end{scope}
\end{tikzpicture}

\end{document}

在此处输入图片描述

星际迷鸭子

\documentclass{standalone}

\usepackage{tikzducks}
\usepackage{fontawesome}

\definecolor{unigold}{RGB}{203,157,52}
\definecolor{uniblue}{RGB}{46,114,167}
\definecolor{unired}{RGB}{177,49,34}

\definecolor{skink}{RGB}{245,206,193}
\definecolor{skins}{RGB}{255,222,151}
\definecolor{skinu}{RGB}{146,113,96}

\newcommand*{\insignia}{\node[rotate=15] at (wing) {\color{yellow!80!brown}\faLocationArrow};}

\begin{document}

\begin{tikzpicture}
\duck[tshirt=black!60!gray, jacket=unigold, body=skink, shorthair=brown!80!black, bill=skink!60!gray]
\insignia
\end{tikzpicture}

\begin{tikzpicture}
\duck[tshirt=black!60!gray, jacket=uniblue, body=skins, shorthair=black!60!brown, bill=skins!60!gray]
\fill[skins,rotate=175, xshift=-46, yshift=-76] (0.45,1.20)--(0.50,0.80)--(0.65,1.20);
\insignia
\end{tikzpicture}

\begin{tikzpicture}
\duck[tshirt=black!60!gray, jacket=unired, body=skinu, longhair=black!60!brown, bill=skinu!70!black]
\insignia
\end{tikzpicture}
\end{document}

在此处输入图片描述

意大利鸭为 CarLaTeX

\documentclass{standalone}
\usepackage{tikzducks}
\usepackage{graphicx}
\begin{document}

\begin{tikzpicture}
    \duck
    \node[rotate=-20] at (2,1) {\includegraphics[width=1.5cm]{bc-ditalie.mps}};
\end{tikzpicture}   

\end{document}

在此处输入图片描述

巫婆鸭 cfr

“catcode” 借自如何使用 TikZ 绘制带装饰的圣诞树?

\pdfminorversion=7
\RequirePackage[rgb,pdftex,dvipsnames,x11names]{xcolor}
\documentclass[tikz,border=5pt]{standalone}
\usetikzlibrary{calc,intersections,backgrounds}
\pgfdeclarelayer{foreground}
\pgfdeclarelayer{pen}
\pgfdeclarelayer{corff}
\pgfsetlayers{background,corff,main,pen,foreground}
\makeatletter
% adapted (simplified version) from tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarybackgrounds.code.tex
  \tikzset{%
    on foreground layer/.style={%
          execute at begin scope={%
            \pgfonlayer{foreground}%
            \let\tikz@options=\pgfutil@empty%
            \tikzset{every on foreground layer/.try,#1}%
            \tikz@options%
          },
          execute at end scope={\endpgfonlayer}
    },
    on pen layer/.style={
          execute at begin scope={%
            \pgfonlayer{pen}%
            \let\tikz@options=\pgfutil@empty%
            \tikzset{every on pen layer/.try,#1}%
            \tikz@options%
          },
          execute at end scope={\endpgfonlayer}
    },
    on corff layer/.style={
          execute at begin scope={%
            \pgfonlayer{corff}%
            \let\tikz@options=\pgfutil@empty%
            \tikzset{every on corff layer/.try,#1}%
            \tikz@options%
          },
          execute at end scope={\endpgfonlayer}
    },
    stripiau cwt/.style={draw=#1, very thin, shorten >=-5mm, shorten <=-5mm, double=#1, double distance=3.5mm},
    stripiau corff/.style={very thin, draw=#1, fill=#1},
    trwyn/.style={circle, yshift=1.25mm, minimum width=2.5mm, inner sep=0pt},
    llenwi cath/.style={fill=#1},
    llygaid/.style n args=2{inner color=#1, outer color=#2, ultra thick, draw},
    pics/cath b/.style n args=5{
      code={
        [ultra thick]
        \begin{pgfonlayer}{pen}% ref. workaround from http://tex.stackexchange.com/a/218166/ (Mark Wibrow)
          \begin{scope}[very thin]% [on pen layer={very thin}]
          \path [clip]
            (0,10mm) coordinate (pen1) arc (90:65:19mm and 20mm) coordinate [pos=.75] (pp1) coordinate (pen2)
              arc (65:45:19mm and 20mm)  coordinate (pen3)
              arc (45:-60:19mm and 20mm) coordinate [pos=.05] (pp4) coordinate [pos=.4] (pp5) coordinate [pos=.45] (pp8) coordinate [pos=.75] (pp9)  coordinate (pen8)
              arc (-60:-90:19mm and 20mm) coordinate (pen10)
              arc (-90:-120:19mm and 20mm) coordinate (pen9)
              arc (-120:-225:19mm and 20mm) coordinate [pos=.25] (pp10) coordinate [pos=.55] (pp11) coordinate [pos=.6] (pp6) coordinate [pos=.95] (pp7) coordinate (pen4)
              arc (-225:-245:19mm and 20mm) coordinate (pen5)
              arc (-245:-270:19mm and 20mm) coordinate [pos=.25] (pp2)
              ;
          \path [stripiau corff=#1]
            (pp2) [out=-45, in=95] to ($(pen1) - (0,10mm)$) coordinate (pp3) [out=85, in=-135] to (pp1) |- +(5mm,5mm) -| cycle
            (pp4) [out=-135, in=25] to +(-7.5mm,-4mm) [out=-25, in=115] to (pp5) -| +(5mm,5mm) |- cycle
            (pp7) [out=-45, in=155] to +(7.5mm,-4mm) [out=-155, in=65] to (pp6) -| +(-5mm,5mm) |- cycle
            (pp8) [out=-135, in=-25] to +(-17.5mm,0mm) [out=-45, in=115] to (pp9) -| +(5mm,5mm) |- cycle
            (pp11) [out=-45, in=-155] to +(17.5mm,0mm) [out=-135, in=65] to (pp10) -| +(-5mm,5mm) |- cycle
            ;
          \end{scope}
        \end{pgfonlayer}
        \path
          (pen2) ++(4mm,7.5mm) coordinate (pen6)
          (pen5) ++(-4mm,7.5mm) coordinate (pen7);
        \path [rounded corners=1pt, llenwi cath=#2]
          (pen1) arc (90:65:19mm and 20mm)
            [out=80, in=-110] to (pen6) [out=-80, in=85] to
          (pen3) arc (45:-225:19mm and 20mm)
            [out=95, in=-100] to (pen7) [out=-70, in=100] to
          (pen5) arc (-245:-270:19mm and 20mm);
        \begin{scope}[on foreground layer={ultra thick}]
          \draw [rounded corners=1pt, ultra thick]
            (pen1) arc (90:65:19mm and 20mm)
              [out=80, in=-110] to (pen6) [out=-80, in=85] to
            (pen3) arc (45:-225:19mm and 20mm)
              [out=95, in=-100] to (pen7) [out=-70, in=100] to
            (pen5) arc (-245:-270:19mm and 20mm);
        \end{scope}
      \path [llenwi cath=#2]% corff
          (pp8) [out=35, in=100] to coordinate [pos=.075] (corff7) coordinate [pos=.1] (corff8) coordinate [pos=.2] (corff9) coordinate [pos=.225] (corff10) coordinate [pos=.325] (corff11) coordinate [pos=.35] (corff12) coordinate [pos=.45] (corff13) coordinate [pos=.475] (corff14) coordinate [pos=.575] (corff15) coordinate [pos=.6] (corff16) coordinate [pos=.7] (corff17) coordinate [pos=.725] (corff18) coordinate [pos=.825] (corff19) coordinate [pos=.86] (corff20) coordinate [pos=.96] (corff21) ++(75mm,-15mm) coordinate (corff5)
            [out=-80, in=-85] to coordinate [pos=.6] (corff6) coordinate [pos=.7] (corff22) coordinate [pos=.775] (corff23) coordinate [pos=.825] (corff24) coordinate [pos=.875] (corff27) coordinate [pos=.9] (corff25) coordinate [pos=.985] (corff26) (pen9);
         \begin{scope}[ultra thick]% stripiau'r corff
            \clip
              (pp8) [out=35, in=100] to (corff5)
                [out=-80, in=-85] to (pen9) |- cycle;
            \path [stripiau corff=#1]
              (pp8) [out=-95, in=65] to ++(7.5mm,-15mm) [out=45, in=-175] to (corff7)
              (corff8) [out=-85, in=50] to ++(7.5mm,-17.5mm) [out=45, in=-135] to (corff9)
              (corff10) [out=-90, in=60] to ++(5mm,-20mm) [out=50, in=-140] to (corff11)
              (corff12) [out=-100, in=55] to ++(2.5mm,-20mm) [out=50, in=-145] to (corff13)
              (corff14) [out=-110, in=50] to ++(0,-20mm) [out=40, in=-155] to (corff15)
              (corff16) [out=-115, in=40] to ++(-3.5mm,-18.5mm) [out=30, in=-170] to (corff17)
              (corff18) [out=-135, in=20] to ++(-7.5mm,-16.5mm) [out=10, in=-180] to (corff19)
              (corff20) [out=-170, in=-5] to ++(-10mm,-12.5mm) [out=-15, in=140] to (corff21)
              (corff26) [out=-45, in=-135] to ++(20mm,-1.5mm) [out=-115, in=45] to (corff25) -- +(-5mm,0) |- cycle
              (corff27) [out=40, in=-115] to ++(20mm,7.5mm) [out=-105, in=65] to (corff24) -- +(-5mm,0) |- cycle;
         \end{scope}
        \draw [ultra thick, name path=corff]
          (pp8) [out=35, in=100] to ++(75mm,-15mm)
            [out=-80, in=-85] to coordinate [pos=.6] (corff6) (pen9);
        \draw [ultra thick, llenwi cath=#2]% coesau
          (corff22) ++(17.5mm,12.5mm) coordinate (coes1)
          (corff23) ++(12.5mm,15mm) coordinate (coes2)
          (coes1) [out=-120, in=35] to (corff22) [out=-145, in=5] to ++(-20mm,-7.5mm) [out=-175, in=0] to ++(-5mm,0) arc (-90:90:-5mm and 3mm) coordinate (coes9) [out=0, in=-175] to ++(5mm,0) coordinate (coes11) [out=5, in=-145] to (corff23) [out=35, in=-100] to (coes2);
        \begin{pgfonlayer}{background}% ref. workaround from http://tex.stackexchange.com/a/218166/ (Mark Wibrow)
          \begin{scope}
            \draw [ultra thick, llenwi cath=#2]% coesau
              (corff23) [out=-145, in=5] to (coes11) [out=-175, in=0] to (coes9) arc (-90:90:-4mm and 2.5mm) [out=0, in=-145] to (corff24)
              ;
          \end{scope}
        \end{pgfonlayer}
        \path [llenwi cath=#2]% llenwi'r cwt
          (corff5) [out=-80, in=-15] to ($(corff6) + (0,-2.5mm)$) coordinate (cwt5)
            [out=165, in=-90] to ++(-5mm,5mm) coordinate (cwt6)
            [out=90, in=170] to ++(7.5mm,5mm) coordinate (cwt7)
            [out=-10, in=-95] to ($(corff5) + (-15mm,-2.5mm)$) coordinate (cwt8)
          ;
        \begin{scope}[ultra thick]% stripiau'r cwt
          \clip (corff5) [out=-80, in=-15] to
              coordinate [pos=.1] (cwt9)
              coordinate [pos=.15] (cwt10a)
              coordinate [pos=.25] (cwt11a)
              coordinate [pos=.345] (cwt12a)
              coordinate [pos=.44] (cwt13a)
              coordinate [pos=.53] (cwt14a)
              coordinate [pos=.62] (cwt15a)
              coordinate [pos=.71] (cwt16a)
              coordinate [pos=.805] (cwt17a)
              coordinate [pos=.9] (cwt18a)
              coordinate [pos=1] (cwt19a)
              (cwt5)
            [out=165, in=-90] to
              coordinate [pos=.45] (cwt20a)
              (cwt6)
            [out=90, in=170] to
              coordinate [pos=.65] (cwt20b)
              (cwt7)
            [out=-10, in=-95] to
              coordinate [pos=.025] (cwt19b)
              coordinate [pos=.125] (cwt18b)
              coordinate [pos=.225] (cwt17b)
              coordinate [pos=.325] (cwt16b)
              coordinate [pos=.425] (cwt15b)
              coordinate [pos=.525] (cwt14b)
              coordinate [pos=.625] (cwt13b)
              coordinate [pos=.725] (cwt12b)
              coordinate [pos=.825] (cwt11b)
              coordinate [pos=.925] (cwt10b)
              (cwt8)
            |- (corff21) -- cycle;
          \path [stripiau corff=#1]
            (corff5) [out=110, in=10] to ++(-7.5mm,-3.5mm) [out=0, in=120] to (cwt9);
          \path [llenwi cath=#1]
            (cwt20a) [out=80, in=-80] to (cwt20b) [out=170, in=90] to (cwt6) [out=-90, in=165] to cycle
            ;
          \foreach \i in {10,...,19}
            \draw [stripiau cwt=#1] (cwt\i a) [out=90, in=-60] to (cwt\i b);
        \end{scope}
        \draw [ultra thick, name path=cwt]
          (corff5) [out=-80, in=-15] to (cwt5)
            [out=165, in=-90] to (cwt6)
            [out=90, in=170] to (cwt7)
            [out=-10, in=-95] to (cwt8)
          ;
         \begin{scope}[on foreground layer={ultra thick}]
          \draw
            (pen10) -- ++(0,7.5mm) coordinate (ceg1)
              [out=-45, in=180] to +(5mm,-2.5mm) coordinate (ceg2)
              [out=0, in=-100] to +(2.5mm,3.5mm) coordinate (ceg3)
             ;
          \draw
            (ceg1)
              [out=-135, in=0] to +(-5mm,-2.5mm) coordinate (ceg4)
              [out=180, in=-80] to +(-2.5mm,3.5mm) coordinate (ceg5)
            ;
          \path (ceg1)
            node (trwyn1) [trwyn, anchor=west] {}
            node (trwyn2) [trwyn, anchor=east] {};
          \draw
            ($(trwyn1)!1/2!(trwyn2)$) coordinate (trwyn) [out=10,in=140] to +(25mm,7.5mm)
            (trwyn) [out=-10, in=120] to +(.5mm,-5mm)
            (trwyn) [out=-40, in=130] to +(-1.5mm,-5mm)
            ;
          \draw
            (trwyn) [out=170,in=40] to +(-25mm,7.5mm)
            (trwyn) [out=-170, in=60] to +(-.5mm,-5mm)
            (trwyn) [out=-140, in=50] to +(1.5mm,-5mm)
            ;
          \path (ceg1)
            node (trwyn1) [trwyn, draw, ball color=#5, anchor=west] {}
            node (trwyn2) [trwyn, draw, ball color=#5, anchor=east] {};
         \end{scope}
          \draw [llygaid={#3}{#4}]
          ({$(pen1)!2/5!(pen10)$} -| {$(pen8)!3/4!(pen4)$}) coordinate (llygad chwith)
            ++(-5mm,0) coordinate (llygad chwith 1) [out=20, in=180] to ++(6mm,2.5mm) coordinate (llygad chwith 2) [out=0, in=120] to ++(4mm,-2.5mm)
            [out=-120, in=0] to ++(-4mm,-2.5mm) [out=180, in=-20] to ++(-6mm,2.5mm)
          ;
          \draw [llygaid={#3}{#4}]
            ({$(pen1)!2/5!(pen10)$} -| {$(pen9)!3/4!(pen3)$}) coordinate (llygad de)
              ++(5mm,0) coordinate (llygad de 1) [out=160, in=0] to ++(-6mm,2.5mm) coordinate (llygad de 2) [out=180, in=40] to ++(-4mm,-2.5mm)
              [out=-40, in=180] to ++(4mm,-2.5mm) [out=0, in=-160] to ++(6mm,2.5mm)
          ;
          \fill [ball color=black] (llygad chwith 1 -| llygad chwith 2) circle (2.5mm);
          \fill [ball color=black] (llygad de 1 -| llygad de 2) circle (2.5mm);
          \begin{scope}[on foreground layer={ultra thick}]
            \draw [shorten >=1pt]
              ($(pen2)!7/10!(pen3)$) coordinate (clust1) [out=125, in=-80] to (pen6);
            \draw [shorten >=1pt]
              ($(pen5)!7/10!(pen4)$) coordinate (clust2) [out=55, in=-100] to (pen7);
          \end{scope}
          \begin{scope}% llenwi clust de
            \clip (clust1) [out=125, in=-80] to (pen6) [out=-110, in=80] to (pen2) |- cycle;
            \path [stripiau corff=#1, rounded corners=1pt]
              (clust1) [out=125, in=-80] to (pen6) [out=-110, in=80] to (pen2) arc (65:45:19mm and 20mm)
              ;
          \end{scope}
          \begin{scope}% llenwi clust chwith
            \clip (clust2) [out=55, in=-100] to (pen7) [out=-70, in=100] to (pen5) |- cycle;
            \path [stripiau corff=#1, rounded corners=1pt]
              (clust2) [out=55, in=-100] to (pen7) [out=-70, in=100] to (pen5) arc (-245:-225:19mm and 20mm)
              ;
          \end{scope}
          % dim yn ddefnyddiol ar hyn o bryd ond gobeithio bynnan nhw ar ôl iddyn nhw fix the bug!
          \coordinate (-pen) at (pen1);
          \coordinate (-clust chwith) at (pen7);
          \coordinate (-clust de) at (pen6);
        }
    },
}
\makeatother

\usepackage{tikzducks}

\begin{document}
  \colorlet{lliw llygaid3}{Chartreuse1}
  \colorlet{lliw llygaid4}{Green4}
  \colorlet{lliw trwyn1}{LightPink2}
  \colorlet{cath5}{LavenderBlush3}
  \colorlet{cath6}{LavenderBlush4}
  \begin{tikzpicture}
    \path (-8,0) rectangle (10,21);
    \begin{scope}[transform canvas={scale=8},xshift=-30pt,yshift=-10pt]
        \duck[longhair=red!80!black,jacket=black!50!gray,magicwand]
            \fill[black!50!gray,rotate=-15] (0.44,2.13) ellipse (0.75 and 0.17);    
            \fill[black!50!gray,rotate=-15] (0.05,2.2)--(0.45,3.2)--(0.82,2.2);
      \end{scope}
    \pic {cath b={cath6}{cath5}{lliw llygaid3}{lliw llygaid4}{lliw trwyn1}};
  \end{tikzpicture}
\end{document}

在此处输入图片描述

皇后鸭

(包含 Ulrike Fischer 的皇冠的代码)

\documentclass{standalone}

\usepackage{tikzducks}
\usepackage[LSBC5,T1]{fontenc}

\definecolor{skin}{RGB}{225,219,206}
\definecolor{bill}{RGB}{170,123,154}
\definecolor{dress}{RGB}{184,209,206}
\definecolor{crown}{RGB}{90,76,183}

\usepackage{chessfss}
\setboardfontencoding{LSBC5}%
\setboardfontcolors{%
    whiteonwhitepiecemask=crown,
    whitepiece=gray!60!white
}

\begin{document}

\begin{tikzpicture}
    \duck[body=skin,bill=bill,jacket=dress,tshirt=teal!20!dress,shorthair=gray!60!white]
    \node[rotate=-10] at (1.03,2.45) {\scalebox{2.1}{\WhiteKingOnWhite}}; 
    \fill[gray!60!white,rotate=-10] (0.6,2.18) ellipse (0.38 and 0.1);
\end{tikzpicture}

\end{document}

在此处输入图片描述

农场动物

\documentclass{standalone}
\usepackage{tikzducks}

\definecolor{skin}{RGB}{161,140,126}
\definecolor{bill}{RGB}{238,212,191}
\definecolor{hair}{RGB}{89,72,72}

\begin{document}

\begin{tikzpicture}
    \duck[body=skin,bill=bill,shorthair=hair]
    \node[skin,rotate=45,scale=3] at (1.7,1.55) {\textsf{s}};
    \fill[hair,rotate=45] (2.4,0.13) ellipse (0.15 and 0.07);
    \begin{scope}[yshift=1]
        \clip (0.3,2.2) circle (0.4);
    \fill[skin] (0.9,2.3) circle (0.4);
  \end{scope}
    \begin{scope}[yshift=1]
        \clip (0.3,2.2) circle (0.35);
    \fill[bill] (0.9,2.3) circle (0.35);
  \end{scope}
    \begin{scope}
        \clip (1.5,2.05) circle (0.4);
    \fill[skin] (1.0,2.35) circle (0.4);
  \end{scope}
    \begin{scope}
        \clip (1.5,2.05) circle (0.35);
    \fill[bill] (1.0,2.35) circle (0.35);
  \end{scope}  
\end{tikzpicture}   

\begin{tikzpicture}
    \duck[body=bill!30!white,bill=bill,shorthair=bill]
    \fill[bill] (1.85,1.35) circle (0.2);
    \begin{scope}[yshift=1]
        \clip (0.3,2.2) circle (0.4);
    \fill[bill] (0.9,2.3) circle (0.4);
  \end{scope}
    \begin{scope}[yshift=1]
        \clip (0.3,2.2) circle (0.35);
    \fill[bill!30!white] (0.9,2.3) circle (0.35);
  \end{scope}
    \begin{scope}
        \clip (1.5,2.05) circle (0.4);
    \fill[bill] (1.0,2.35) circle (0.4);
  \end{scope}
    \begin{scope}
        \clip (1.5,2.05) circle (0.35);
    \fill[bill!30!white] (1.0,2.35) circle (0.35);
  \end{scope}  
\end{tikzpicture}   

\begin{tikzpicture}
    \duck[body=red!20!white,bill=red!40!white,shorthair=red!30!white]
    \node[red!20!white,rotate=25,scale=3] at (1.7,1.51) {\textsf{s}};
    \begin{scope}[yshift=-1]
        \clip (0.3,2.2) circle (0.35);
    \fill[red!30!white] (0.9,2.3) circle (0.35);
  \end{scope}
    \begin{scope}
        \clip (1.5,2.02) circle (0.35);
    \fill[red!30!white] (1.0,2.35) circle (0.35);
  \end{scope}  
\end{tikzpicture}       

\end{document}

在此处输入图片描述

答案3

答案4

麦克斯韦妖

\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[line width=.2cm,line cap=round]
  \draw (0,0) circle (1);
  % Eyes
  \filldraw (180:.2) ellipse (.1 and .2);
  \filldraw (180:.65) ellipse (.1 and .2);
  % Mouth
  \draw (200:1) to[out=-20,in=220] (-50:.3);
  % Feet
  \draw (250:1) -- ++(250:.5) -- ++(160:.5);
  \draw (300:1) -- ++(300:.5) -- ++(200:.5);
  % Horns
  \filldraw (120:1) to[out=160,in=-90] (120:2) to[out=-120,in=120] (160:1) arc(160:120:1) -- cycle;
  \filldraw (70:.9) to[out=20,in=-90] (60:2) to[out=-60,in=40] (20:.8) to[bend left] (70:.9) -- cycle;
  % Tail
  \draw (-30:1) to[bend right] (-10:2);
  \filldraw (-10:2) to[bend left] (-5:1.9) to[bend right] (10:2.5) to[bend left] (-12:2.2) to[bend left] (-10:2) -- cycle;
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容