-
Notifications
You must be signed in to change notification settings - Fork 14
/
Copy pathPacduck.tex
executable file
·134 lines (122 loc) · 4.75 KB
/
Pacduck.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
% !TeX program = txs:///arara
% arara: latexmk: {
% arara: --> engine: pdflatex,
% arara: --> options: [
% arara: --> '-pretex="\\AtBeginDocument{\\pagecolor{gray!20}}"',
% arara: --> '-usepretex'
% arara: --> ]
% arara: --> }
% arara: pdftocairo: {
% arara: --> format: 'png',
% arara: --> options: [
% arara: --> '-r', '150', '-transp', '-singlefile', '-f', '15',
% arara: --> '@{getBasename(getOriginalReference())}_bg'
% arara: --> ]
% arara: --> }
% arara: latexmk: {
% arara: --> engine: pdflatex,
% arara: --> }
% arara: convert: { options: [ '-delay', '10', '-loop', '0',
% arara: --> '-density', '100', '-alpha', 'remove',
% arara: --> '@{getBasename(getOriginalReference())}.pdf',
% arara: --> '@{getBasename(getOriginalReference())}.gif' ] }
% arara: clean: { extensions: [ aux, log, fdb_latexmk, fls, synctex.gz, nav, out, snm, toc ] }
%modified from https://tex.stackexchange.com/a/429006/36296
\documentclass[tikz]{standalone}
\usepackage{xcolor-material}
\usepackage{tikzducks}
\usetikzlibrary{ducks}
% from https://tex.stackexchange.com/questions/413389/how-to-make-a-simple-drawing-of-an-apple-using-only-the-tikz-library
\usetikzlibrary{fit}
\tikzset{%
apple/.pic={
\fill [MaterialBrown] (-1/8,0)
arc (180:120:1 and 3/2) coordinate [pos=3/5] (@)-- ++(1/6,-1/7)
arc (120:180:5/4 and 3/2) -- cycle;
\fill [MaterialLightGreen500] (0,-9/10)
.. controls ++(180:1/8) and ++( 0:1/4) .. (-1/3, -1)
.. controls ++(180:1/3) and ++(270:1/2) .. ( -1, 0)
.. controls ++( 90:1/3) and ++(180:1/3) .. (-1/2, 3/4)
.. controls ++( 0:1/8) and ++(135:1/8) .. ( 0, 4/7)
.. controls ++( 45:1/8) and ++(180:1/8) .. ( 1/2, 3/4)
.. controls ++( 0:1/3) and ++( 90:1/3) .. ( 1, 0)
.. controls ++(270:1/2) and ++( 0:1/3) .. ( 1/3, -1)
.. controls ++(180:1/4) and ++( 0:1/8) .. cycle;
\fill [MaterialLightGreen600] (0, 4/7)
.. controls ++( 45:1/8) and ++(180:1/8) .. ( 1/2, 3/4)
.. controls ++( 0:1/3) and ++( 90:1/3) .. ( 1, 0)
.. controls ++(270:1/2) and ++( 0:1/3) .. ( 1/3, -1)
.. controls ++(180:1/4) and ++( 0:1/8) .. ( 0,-9/10);
\fill [MaterialGreen500, shift={(@)}, rotate=-30]
(0,0) arc (45:135:3/4 and 3/5) arc (225:315:3/4 and 3/5);
\fill [MaterialGreen700, shift={(@)}, rotate=-30]
(0,0) arc (315:225:3/4 and 3/5) -- cycle;
},
cherry/.pic={
\foreach \i in {1,2}{
\tikzset{shift={(-1+\i*3/4, -3/5+\i/5)},scale=1/2, rotate=15-\i*10}
\fill [MaterialRed700] (0,19/20)
.. controls ++(180:1/8) and ++( 0:1/4) .. (-1/3, 1)
.. controls ++(180:1/3) and ++( 90:1/2) .. ( -1, 0)
.. controls ++(270:1/2) and ++(180:1/2) .. ( 0, -1)
.. controls ++( 0:1/2) and ++(270:1/2) .. ( 1, 0)
.. controls ++( 90:1/2) and ++( 0:1/3) .. ( 1/3, 1)
.. controls ++(180:1/4) and ++( 0:1/8) .. cycle;
\fill [MaterialRed800] (0, -1)
.. controls ++( 0:1/2) and ++(270:1/2) .. ( 1, 0)
.. controls ++( 90:1/2) and ++( 0:1/3) .. ( 1/3, 1)
.. controls ++(180:1/4) and ++( 0:1/8) .. ( 0,19/20) -- cycle;
\fill [MaterialRed900] (0,3/4) coordinate (@\i)
ellipse [x radius=1/4, y radius=1/8];
}
\fill [MaterialBrown]
(1/4,11/8) -- (3/8,11/8) coordinate (@)
.. controls ++(270:1/2) and ++(135:1/3) .. (@1)
.. controls ++(135:1/2) and ++(270:1/2) .. cycle;
\fill [MaterialBrown]
(1/4,11/8) -- (3/8,11/8)
.. controls ++(315:1/2) and ++(45:1/2) .. (@2)
.. controls ++(60:1/2) and ++(315:1/2) .. cycle;
\fill [MaterialGreen500, shift={(@)}, rotate=20]
(0,0) arc (45:135:3/4 and 3/5) arc (225:315:3/4 and 3/5);
\fill [MaterialGreen700, shift={(@)}, rotate=20]
(0,0) arc (315:225:3/4 and 3/5) -- cycle;
}}
\newcount\nframes
\nframes=80
\begin{document}
\foreach \n in {0,...,\nframes}{
\begin{tikzpicture}
\pgfmathsetmacro{\x}{10.0 * \n / \nframes}
\pgfmathsetmacro{\bill}{int Mod(\n,5)}
\pgfmathsetmacro{\angle}{5 + 25 * abs(sin(3 * 360 * (\n / \nframes)))}
\clip (-1, -1.2) rectangle (10, 1.2);
% food
\begin{scope}
\clip (\x, -1.2)++(-1,0) rectangle (10, 1.2);
\foreach \i in {0,...,10} {
\ifnum\i=2
\draw[fill = yellow,xscale=-1] (-2,0) -- ++ (45:0.2cm) arc (45:360-45:0.2cm) -- cycle;
\fill (2,0.1) circle (0.2mm);
\else
\ifnum\i=5
\path (8, 0) pic[scale = 0.4] {apple};
\else
\ifnum\i=8
\path (5, 0) pic[scale = 0.4] {cherry};
\else
\fill[gray, opacity = 0.3] (\i, 0) circle (0.2);
\fi \fi \fi
}
\end{scope}
% pacman
\begin{scope}[yshift=-30,xscale=-1,xshift = -\x cm]
\ifnum\bill<4
\duck
\else
\duck[laughing]
\fi
\end{scope}
\end{tikzpicture}
}
\end{document}