21

I want to draw the Pacman circle on TikZ:

http://www.vectorstash.com/content/pac-man

Drawing a circle and filling in a color is easy; it's the mouth part that's troubling me. I can draw the two straight lines, but then I try to connect them with a curve using the [out=...,in=...] syntax and I can't get it to work. Is there an easier way to make this work?

What I've tried:

\begin{tikzpicture}
\path[fill=yellow] (2,1.1) to [out=30,in=150] (0,1.2) to [out=30,in=150] (2,1.3) -- (1,1.2) -- (2,1.1);
\end{tikzpicture}
3
  • Welcome to TeX.SE! The picture you are referring to has straight lines. So how precisely should the Pacman look like? Could you show what you have tried?
    – user121799
    Commented Apr 28, 2018 at 3:44
  • Certainly! I've tried the code above. I just can't get the curve right.
    – user11550
    Commented Apr 28, 2018 at 3:48
  • I worry about copyright. Commented Apr 13, 2019 at 6:32

9 Answers 9

10

edit:

consider Kpym comments let expanded one "paceman" to set of them with different orientation, size, rotation and colors....

enter image description here

\documentclass[tikz, margin=3mm]{standalone}
\usepackage{geometry}
\usepackage{tikz}

\begin{document}
\begin{tikzpicture}%[scale=...]
  \draw[thick,fill=yellow]
    (0,0) -- (30:1cm) arc (30:330:1cm) -- cycle;
  \fill (0,0.66) circle (1.5mm);
\end{tikzpicture}\quad
\begin{tikzpicture}[xscale=-1]
  \draw[thick,fill=yellow]
    (0,0) -- (30:1cm) arc (30:330:1cm) -- cycle;
  \fill (0,2/3) circle (1.5mm);
\end{tikzpicture}\quad 
\begin{tikzpicture}[scale=-1]
  \draw[thick,fill=yellow]
    (0,0) -- (30:1cm) arc (30:330:1cm) -- cycle;
  \fill (0,2/3) circle (1.5mm);
\end{tikzpicture}\quad 
\begin{tikzpicture}[yscale=-1]
  \draw[thick,fill=yellow]
    (0,0) -- (30:1cm) arc (30:330:1cm) -- cycle;
  \fill (0,2/3) circle (1.5mm);
\end{tikzpicture}\quad 
\begin{tikzpicture}[scale=0.75,rotate=-45]
  \draw[thick,fill=yellow!50!orange]
    (0,0) -- (30:1cm) arc (30:330:1cm) -- cycle;
  \fill (0,2/3) circle (1.5mm);
\end{tikzpicture}\quad 
\begin{tikzpicture}[xscale=-0.75,yscale=0.75, rotate=45]
  \draw[thick,fill=orange]
    (0,0) -- (30:1cm) arc (30:330:1cm) -- cycle;
  \fill (0,2/3) circle (1.5mm);
\end{tikzpicture}\quad 
\begin{tikzpicture}[scale=-0.75, rotate=90]
  \draw[thick,fill=olive]
    (0,0) -- (30:1cm) arc (30:330:1cm) -- cycle;
  \fill (0,2/3) circle (1.5mm);
\end{tikzpicture}
\end{document}

size and orientation of "pacman" (as you can see) you can adopt to your wishes with scaling with scale=..., xscale=..., yscale=..., rotate=... in any combination.

edit (2):

another idea is to define "paceman" as \newcommand and use it in document also out of tikzpicture environment:

 \documentclass{article}
\usepackage{geometry}
\usepackage{tikz}

\newcommand\pacman[2]{\tikz[baseline, #1]{%
    \draw[thick,fill=#2]
    (0,0) -- (30:1cm) arc (30:330:1cm) -- cycle;
    \fill (0,2/3) circle (1.5mm);}
                       } 
\begin{document}
\pacman{scale=1}{yellow}\quad
\pacman{xscale=-1}{yellow}\quad 
\pacman{scale=-1}{yellow}\quad
\pacman{yscale=-1}{yellow}\quad

\begin{tikzpicture}
\pacman{scale=0.75,rotate=-45}{yellow!50!orange}\quad 
\pacman{xscale=-0.75,yscale=0.75, rotate=45}{orange}
\end{tikzpicture}
 \end{document}

enter image description here

10
  • 1
    For code golfing \tikz{\draw[thick,fill=yellow](0,0)--(30:1)arc(30:330:1)--cycle;\fill(0,2/3)circle (.15);} your solution is ;)
    – Kpym
    Commented Apr 28, 2018 at 5:22
  • Thanks! I also want to draw a Pacman that faces the opposite direction. I tried both 150:210 and 210:150, but neither works. What should I do?
    – user11550
    Commented Apr 28, 2018 at 5:32
  • @user11550 you can simply add [yscale=-1] to obtain the opposite direction. And if you want to turn it [rotate=...]. Both can be combined like this [yscale=-1,rotate=...]
    – Kpym
    Commented Apr 28, 2018 at 7:21
  • @Kpym, thank you very much for all suggestions! i consider them in edited answer. thank you again.
    – Zarko
    Commented Apr 28, 2018 at 9:11
  • @user11550, see edited answer.
    – Zarko
    Commented Apr 28, 2018 at 9:19
40

I think you misinterpret what the in and out syntax does. You may want to use arc.

\documentclass[tikz,border=3.14mm]{standalone}
\tikzset{
  Pacman/.pic={
\shadedraw[inner color=yellow,outer color=yellow!80!black,draw=black,thick] 
(0,0) -- (40:2) arc(40:320:2) -- cycle;
\fill (0,1) circle (0.3);
  }
}

\begin{document}
\begin{tikzpicture}
\pic {Pacman};
\pic[xscale=-1] at (5,0) {Pacman};
\end{tikzpicture}
\end{document}

enter image description here

Anyway, here is a 3D version.

\documentclass[tikz,border=3.14mm]{standalone}
\tikzset{Pacman/.pic={
\fill (0,0)  to[out={1.75*#1},in={180-0.25*#1}] ({0.92*#1}:2)
 to[out={-180+0.25*#1},in={1.75*#1},looseness=0.5] (1,0) 
 to[out={-1.75*#1},in={180-0.25*#1},looseness=0.5] ({-0.92*#1}:2) 
 to [out={-180+0.25*#1},in={-1.75*#1}] cycle;
\shadedraw[ball color=yellow,thick] 
(0,0)  to[out={1.75*#1},in={180-0.25*#1}] ({0.92*#1}:2)
 arc({0.92*#1}:{360-0.92*#1}:2) to [out={-180+0.25*#1},in={-1.75*#1}]
  cycle;
\fill ({0.3-0.01*#1},1) circle (0.3);
  }
}

\begin{document}
\begin{tikzpicture}
\pic {Pacman=50};
\pic[xscale=-1] at (5,0) {Pacman=20};
\end{tikzpicture}
\end{document}

enter image description here

EDIT: Added backwards facing Pacman and used pic and added 3D.

2nd EDIT: Inspired by samcarter, who got inspired by caverac: a 3D animation using this answer.

\documentclass{article}

\usepackage{animate}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usepackage[active,tightpage]{preview}
\makeatletter
\def\@anim@@newframe{\@ifstar\@anim@newframe\@anim@newframe}
\def\@anim@newframe{\end{preview}\begin{preview}}
\renewenvironment{animateinline}[2][]{%
  \let\newframe\@anim@@newframe%
  \let\multiframe\@anim@multiframe%
  \begin{preview}}{%
  \end{preview}}
\makeatother
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usepackage{tikz}
\usepgfmodule{nonlineartransformations}
\usetikzlibrary{shapes}
\usetikzlibrary{patterns}
\makeatletter
% from https://tex.stackexchange.com/q/56353/121799
\newcommand{\gettikzxy}[3]{%
  \tikz@scan@one@point\pgfutil@firstofone#1\relax
  \global\edef#2{\the\pgf@x}%
  \global\edef#3{\the\pgf@y}%
}
% from the manual section 103.4.2
% \pgf@x will contain the \xout{radius} angle
% \pgf@y will contain the distance \pgfmathsincos@{\pgf@sys@tonumber\pgf@x}%
% pgfmathresultx is now the cosine of \xout{radius} radius and 
% pgfmathresulty is the sine of radius 
% \pgf@x=\pgfmathresultx\pgf@y% 
% \pgf@y=\pgfmathresulty\pgf@y%
% what the thing in the pgf manually is probably doing it to express the x coordinate in pt
% then take the cos and sin of x/pt (i.e. if x=50pt then it will return cos(50))
% and multiply the outcome by a the y coordinate
% (x_new,y_new) = (y_old cos(x_old/pt), y_old sin(x_old/pt))
% now comes a slightly modified version
\def\marmotransformation{% modified version of the manual 103.4.2 Installing Nonlinear Transformation
\advance\pgf@x by -\xC% relative
\advance\pgf@y by -\yC% coorinates
\edef\relX{\the\pgf@x}%
\edef\relY{\the\pgf@y}% Yes, there is a more elegant solution based on \pgfpointadd
\pgfmathsetmacro{\relNx}{\xN-\xC}%
\pgfmathsetmacro{\relNy}{\yN-\yC}%
\pgfmathsetmacro{\angleN}{atan2(\relNy,\relNx)}%
\pgfmathsetmacro{\LeN}{veclen(\relNx,\relNy)}%
\pgfmathsetmacro{\myp}{(\relX*\relNx+\relY*\relNy)/(\LeN*28.3465)}
\pgfmathsetmacro{\myo}{(((\relY*\relNx-\relX*\relNy))/(\myp*\LeN*(28.3465*pi/180)))+\angleN)}
\pgfpointadd{\pgfqpoint{\xC}{\yC}}{\pgfpointpolarxy{\myo}{\myp}}
} 


\begin{document}
\begin{animateinline}[autoplay,loop]{2}
\multiframe{21}{i=0+1}{\pgfmathsetmacro{\myangle}{60-5*abs(\i-10)}
\begin{tikzpicture}[ball color=red]
%\pic[scale=2] at (-6.5,0) {Pacman=\myangle};
\begin{scope}[xshift={-(6.5-0.4*\i)*1cm},scale=2]
\fill (0,0)  to[out={1.75*\myangle},in={180-0.25*\myangle}] ({0.92*\myangle}:2)
to[out={-180+0.25*\myangle},in={1.75*\myangle},looseness=0.5] (1,0) 
to[out={-1.75*\myangle},in={180-0.25*\myangle},looseness=0.5]
({-0.92*\myangle}:2) to [out={-180+0.25*\myangle},in={-1.75*\myangle}]   cycle;
\end{scope}
%
\coordinate (C) at (0,3) {};
\gettikzxy{(C)}{\xC}{\yC}
\coordinate (N) at (0,0) {};
\gettikzxy{(N)}{\xN}{\yN}
\begin{scope}[transform shape nonlinear=true]
\pgftransformnonlinear{\marmotransformation} 
\shade[shading=ball,opacity=1] (0,0) circle (2);
\end{scope}
\draw[smooth,fill=black](-0.15,3) .. controls (-0.15,2.5) .. (0,2) to 
(0.1,2) .. controls (-0.05,2.5) .. (-0.05,3) --cycle;
%
\begin{scope}[xshift={-(6.5-0.4*\i)*1cm},scale=2]
\shadedraw[ball color=yellow,thick] 
(0,0)  to[out={1.75*\myangle},in={180-0.25*\myangle}] ({0.92*\myangle}:2)
 arc({0.92*\myangle}:{360-0.92*\myangle}:2) to [out={-180+0.25*\myangle},in={-1.75*\myangle}]
  cycle;
\fill ({0.3-0.01*\myangle},1) circle (0.3);
\end{scope}
\path[use as bounding box](-8,-2) rectangle 4,2);
\end{tikzpicture}
}
\end{animateinline}
\end{document}

enter image description here

5
  • Thanks! I also want to draw a Pacman that faces the opposite direction. I tried both 140:220 and 220:140, but neither works. What should I do?
    – user11550
    Commented Apr 28, 2018 at 5:38
  • 1
    @user11550 (0,0) -- (140:2) arc(140:-140:2) -- cycle;
    – Ignasi
    Commented Apr 28, 2018 at 7:47
  • @user11550 I added a Pacman facing in opposite direction.
    – user121799
    Commented Apr 28, 2018 at 11:09
  • 2
    This looks like it belongs on the fishing channel! Commented Apr 30, 2018 at 10:29
  • @StevenB.Segletes Done.
    – user121799
    Commented Jul 31, 2018 at 23:05
38
\documentclass[border = 5pt, tikz]{standalone}

\usepackage{xcolor-material}

% 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{\angle}{5 + 25 * abs(sin(3 * 360 * (\n / \nframes)))}
    \clip (-1, -1.2) rectangle (10, 1.2);

    % food
    \begin{scope}
      \clip (\x, -1.2) rectangle (10, 1.2);
      \foreach \i in {0,...,10} {

        \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
      }
    \end{scope}


    % pacman
    \begin{scope}[xshift = \x cm]
      \draw[thick,fill = yellow]
      (0,0) -- ++ (\angle:1cm) arc (\angle:360-\angle:1cm) -- cycle;
      \fill (0,0.66) circle (1.5mm);
    \end{scope}    

  \end{tikzpicture}    
}
\end{document}

enter image description here


EDIT: Thanks to @UlrikeFischer for the suggestion :)

enter image description here

\newcommand{\interrupted}{%

  \pgfmathsetmacro{\dx}{11.0 / 7.0}
  \foreach \i/\c in {0/gray,1/yellow,2/cyan,3/green,4/magenta,5/red,6/blue} {
    \fill[\c] (\i * \dx - 1, -0.4) rectangle (\i * \dx + \dx - 1, 1.2);
  }
  \foreach \i/\c in {0/blue,1/black,2/magenta,3/black,4/cyan,5/black,6/white} {
    \fill[\c] (\i * \dx - 1, -0.6) rectangle (\i * \dx + \dx - 1, -0.4);
  }

  \pgfmathsetmacro{\dx}{11.0 / 6.0}
  \foreach \i/\c in {0/blue!40!black,1/white,2/blue,3/black,4/black!80,5/black} {
    \fill[\c] (\i * \dx - 1, -1.2) rectangle (\i * \dx + \dx - 1, -0.6);
  }
  \node[white] at (5.5, 0) {\textbf{No ducks were harmed in this test}}
}

And add this to the main loop

\pgfmathsetmacro{\switchl}{\x > 4.0}
\pgfmathsetmacro{\switchr}{\x < 6.0}
\ifnum\switchl=1 \ifnum\switchr=1
\interrupted{};
\fi\fi
9
  • 7
    Nice. Next step : integrate script version in a way that we can play Packman in PDF ;)
    – Kpym
    Commented Apr 28, 2018 at 9:54
  • 5
    I was worried for a minute! Commented Apr 28, 2018 at 11:15
  • 3
    You should prove that the duck was not harmed. It could reappear after the pacman ;-) Commented Apr 28, 2018 at 11:27
  • 1
    A very cool animation! Commented Apr 28, 2018 at 13:04
  • 5
    Great answer! I created a version with reverted roles: i.sstatic.net/gImlU.gif Commented Apr 28, 2018 at 13:58
18

A picture version just to impress David Carlisle ;)

\documentclass[border=7pt]{standalone}
\usepackage{color}
\begin{document}
  \setlength{\unitlength}{.5pt}
  \begin{picture}(200,200)(-100,-100)
    \qbezier(0,0)(43.5, 25)(87, 50)
    \qbezier(87, 50)(58, 100)(0, 100)
    \qbezier(0, 100)(-58, 100)(-87, 50)
    \qbezier(-87, 50)(-115, 0)(-87, -50)
    \qbezier(-87, -50)(-58, -100)(0, -100)
    \qbezier(0, -100)(58, -100)(87, -50)
    \qbezier(87, -50)(43.5, -25)(0, 0)
    \color{red}
    \put(0,67){\circle*{30}}
  \end{picture}
\end{document}

enter image description here

4
  • well, you impress me too! (+1)
    – Zarko
    Commented Apr 28, 2018 at 9:28
  • And me too! :):):)
    – CarLaTeX
    Commented Apr 28, 2018 at 9:38
  • 12
    +1 strike against the tikz mafia:-) Commented Apr 28, 2018 at 9:38
  • @DavidCarlisle the revolution is coming 50 years after May '68 ;)
    – Kpym
    Commented Apr 28, 2018 at 9:51
15

An alternative solution with tkz-euclide, unfortunately the documentation is in French only, but there are many examples very easy to understand.

\documentclass{article}
\usepackage{tkz-euclide}
\usetkzobj{all}

\begin{document}
    \begin{tikzpicture}
        \tkzDefPoint(0,0){O}
        \tkzDefPoint(0,1){A}
        \tkzDrawSector[R,draw=black,thick,fill=yellow](O,2cm)(30,330)
        \tkzDrawCircle[R, fill=black](A,.3cm)
        \tkzDefPoint(4.5,0){O2}
        \tkzDefPoint(4.5,1){A2}
        \tkzDrawSector[R,draw=black,thick,fill=yellow](O2,2cm)(210,150)
        \tkzDrawCircle[R, fill=black](A2,.3cm)
    \end{tikzpicture}
\end{document}

enter image description here

2
  • nice (+1)! i'm not familiar tkz-euclide, but now see one reason more why make me more familiar with it :-)
    – Zarko
    Commented Apr 28, 2018 at 9:21
  • 4
    @Zarko Thank you! I think the package would be more popular if there was an English documentation :):):)
    – CarLaTeX
    Commented Apr 28, 2018 at 9:34
8

Ascii verbatim version.

\documentclass[preview]{standalone}
\begin{document}
\ttfamily\tiny
\begin{verbatim}


                                                `..--:::::--..`
                                         `-/+osssoo++++++++oosssso+/-`
                                     -/osso/::-------------------::+osso/.
                                 `:oyo+:-------------------------------:+syo:`
                              `:syo:----------------:/+++/-----------------/oyo-
                            .+yo:-----------------:ymNMMMNms:-----------------/sy/`
                          .oy+-------------------:mMMMMMMMMMd-------------------:oy+`
                        `oy+---------------------sMMMMMMMMMMM+---------------------oh/`
                       :ho-----------------------+MMMMMMMMMMN:----------------------:sy-
                     `oh:-------------------------omMMMMMMMm+-------------------------/h+
                    .hs----------------------------:+shhhs+----------------------------:hy
                   .do---------------------------------------------------------------:oys/`
                  .d+------------------------------------------------------------:/syo:`
                 `ho----------------------------------------------------------:+ys+-
                 oh--------------------------------------------------------/oyo:`
                .N:----------------------------------------------------:+sy+-
                ys--------------------------------------------------:oys/.
               `N:-----------------------------------------------+syo-
               /d--------------------------------------------:oys/.
               sy-----------------------------------------/syo:
               ys-------------------------------------:oyy+.
               ys--------------------------------------oyy+.
               sy-----------------------------------------/sys:`
               /d--------------------------------------------:oyy+.
               `N:-----------------------------------------------/syo:`
                ys--------------------------------------------------:oys/.
                .N:----------------------------------------------------:+syo-
                 oh--------------------------------------------------------/oys/.
                 `ho----------------------------------------------------------:+ss+-
                  .d+------------------------------------------------------------:/syo:`
                   .do---------------------------------------------------------------:oss+`
                    .hs----------------------------------------------------------------:hs
                     `oh:-------------------------------------------------------------/h+
                       :ho----------------------------------------------------------:sy-
                        `+h+-------------------------------------------------------oh/`
                          .oy+--------------------------------------------------:oy+`
                            .+yo/---------------------------------------------/sy/`
                              `:syo:---------------------------------------/oyo-
                                 `:oys+:-------------------------------:+sso:`
                                     -/osso+::-------------------:/+osso:.
                                         `-/+ossssoo+++++++oosssso+:-`
                                                `..--:::::--.``


\end{verbatim}
\end{document}

enter image description here

6

Code golfing version.

\documentclass[tikz,border=7pt]{standalone}
\begin{document}
  \tikz{\draw[thick,fill=yellow](0,0)--(30:1)arc(30:330:1)--cycle;\fill(0,2/3)circle(.15);}
\end{document}

enter image description here

4

Plain Metapost version:

prologues := 3;
outputtemplate := "%j%c.eps";
beginfig(1);
    path P; 
    P = origin -- subpath 1/2(1,15) of fullcircle scaled 42 -- cycle;
    fill P withcolor red+green; draw P;
    fill fullcircle scaled 7 shifted 14 up;
endfig;
end.

enter image description here

3

A trivial solution with PSTricks.

\documentclass[pstricks]{standalone}
\begin{document}
\pspicture(6,6)
    \pswedge[fillstyle=solid,fillcolor=yellow](3,3){3}{15}{345}
    \qdisk(3.5,4.5){.5}
\endpspicture
\end{document}

enter image description here

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .