我们在这个网站上有大量漂亮的 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
现在这是社区维基,我很乐意开始列出链接。如果您知道网站上还有其他与动物有关的问题,请将链接添加到此列表中。
Tikz 中的动物图标(乌龟代码)
LaTeX 中的可爱(儿童友好)文档(原始鸭子代码:由鸭子创造,为鸭子而生)
如何用鸽子来说明鸽巢原理?(和鸽子)
如何仅使用 tikz 库绘制一个简单的苹果图?(躲在水果碗里的鲨鱼)
我们不能忘记,人类也是动物王国的成员。
场外:
答案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}