# Calculating the minimum of two distances with tikz

I am trying to make the middle circle fit inside the two larger circles:

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc}
\usetikzlibrary{positioning}
\usepackage{amsmath}
\begin{document}
\begin{tikzpicture}
\coordinate (x0) at (-2.5,0);
\coordinate (x1) at (2,0);
\coordinate (y) at (0,0);

\filldraw[fill=lime,fill opacity=0.3] (x0) circle (4);
\filldraw[fill=lime,fill opacity=0.3] (x1) circle (3.5);
\filldraw[fill=blue,fill opacity=0.2]
let \p0 = ($(x0) - (y)$) in
let \p1 = ($(x1) - (y)$) in
(y) circle
({min(4 - veclen(\x0,\y0),3.5 - veclen(\x1,\y1))});

\node at (x0) {\textbullet};
\node[below left=20pt of x0] {$\operatorname{Ball}(x_0;r_0)$};
\node at (x1) {\textbullet};
\node[below right=20pt of x1] {$\operatorname{Ball}(x_1;r_1)$};
\node at (y) {\textbullet};
\node[below=0.1pt of y] {$y$};
\end{tikzpicture}
\end{document}


I suppose that taking the minimum of r_0 - d(x_0,y) and r_1 - d(x_1,y) will work, but instead it gives the strange result above.

Edit: The centre of the middle circle will be moved somewhere else not on the axis. The radius has to adapt to the centre.

You have to specify the units for the radius in the calculation:

(y) circle
({min(4cm - veclen(\x0,\y0),3.5cm - veclen(\x1,\y1))});


You don't need veclen here as the relevant points are all on the axis, so it's just 1.5

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc}
\usetikzlibrary{positioning}%grrr
\usepackage{amsmath}%grrr
\begin{document}
\begin{tikzpicture}
\coordinate (x0) at (-2.5,0);
\coordinate (x1) at (2,0);
\coordinate (y) at (0,0);

\filldraw[fill=lime,fill opacity=0.3] (x0) circle (4);
\filldraw[fill=lime,fill opacity=0.3] (x1) circle (3.5);
\filldraw[fill=blue,fill opacity=0.2] (y) circle (1.5);
\node at (x0) {\textbullet};
\node[below left=20pt of x0] {$\operatorname{Ball}(x_0;r_0)$};
\node at (x1) {\textbullet};
\node[below right=20pt of x1] {$\operatorname{Ball}(x_1;r_1)$};
\node  at (y) {\textbullet};
\node[below=0.1pt of y] {$y$};
\end{tikzpicture}
\end{document}


Here is yet another solution that only needs the specification of the two circles and computes the rest by itself. For the result see the other answers.

\documentclass[border=1mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{calc}
\usetikzlibrary{positioning}
\usepackage{amsmath}
\begin{document}
\begin{tikzpicture}[x=1cm,y=1cm]
\coordinate (A) at (-2.5,0); % center first circle
\coordinate (B) at (2,0);    % center first circle

\coordinate (BA) at ($(B)!\rb!(A)$); % point on circle around B towards A
\coordinate (AB) at ($(A)!\ra!(B)$); % point on circle around A towards B
\coordinate (C) at ($0.5*(BA)+0.5*(AB)$); % center third circle

\filldraw[fill=lime,fill opacity=0.3] (A) circle (\ra);
\node at (A) {\textbullet};
\node[below left=20pt of A] {$\operatorname{Ball}(x_0;r_0)$};

\filldraw[fill=lime,fill opacity=0.3] (B) circle (\rb);
\node at (B) {\textbullet};
\node[below right=20pt of B] {$\operatorname{Ball}(x_1;r_1)$};

\filldraw[fill=blue,fill opacity=0.2]
let \p1=($(C)-(AB)$) in
(C) circle ({veclen(\x1,\y1)});
\node at (C) {\textbullet};
\node[below=0.1pt of C] {$y$};
\end{tikzpicture}
\end{document}