# Flatten an arc while keeping length fixed

I propose two constructions (answers):

flattening the annulus

flattening and stretching the annulus.

Assume that the annulus is a family of concentric circles spread between the interior and exterior frontier circles. Each circle of this family is transformed during the flattening process and eventually becomes a segment. In the first construction, the length of these curves is constant throughout the process. In particular, the region of the plane that represents the deformed annulus has constant area. In the second construction, these curves have increasing length, but the one corresponding to the exterior circle.

Before giving the code some explanations. We consider an annulus with
*S* and *N* two diametrically opposed points on the exterior circle
* C*. We denote by

*T_S*the tangent line to

*at*

**C***S*. We cut the annulus along the ray passing through

*N*and want to flatten it such that, at the end, the curve corresponding to the exterior circle becomes a segment contained in the tangent line

*T_S*with

*S*its midpoint.

I'll briefly explain the first construction which appears, for
example, in Cavalieri's work on the method of indivisibles; see https://fr.wikipedia.org/wiki/M%C3%A9thode_des_indivisibles#:~:text=spirale%20d'Archim%C3%A8de.-,Aire%20du%20disque,varie%20de%200%20%C3%A0%20R.
It is based on the following idea: to flatten the exterior circle
let's say, we imagine it as being a wire with its end points at *N*,
wound around a disk which is tangent to *T_S*. If the disk's radius
increases but the disk remains tangent to *T_S*, the evolution of the
wire gives the desired flattening process of the circle.

The construction is build around this limiting process; there is a set
of circles * C*_k with increasing radii that describe the flattening
process of the exterior circle (see the figure above). The interior
circle is forced to follow the exterior one in the sens that its
flattening process is defined by circles that are concentric to the
corresponding

*_k circles and remain tangent to the fixed point*

**C***S'*.

To finish the construction, we compute the angles defining all these arcs
for each value of *k* (done through the variable *\q* in the code bellow).

**The code for the first construction**

```
\documentclass[margin=10pt]{standalone}
\usepackage[rgb]{xcolor}
\usepackage{tikz}
\usetikzlibrary{math, calc}
\xdefinecolor{O}{RGB}{255, 102, 17}
\xdefinecolor{R}{RGB}{238, 34, 34}
\xdefinecolor{B}{RGB}{17, 87, 221}
\begin{document}
\tikzmath{%
real \r, \R, \h, \q;
\r = 1.5;
\R = 2.75;
\h = \R-\r;
}
\begin{tikzpicture}[every node/.style={scale=0.8}, rotate=-90]
\path[clip] (-\R-2, -10) rectangle (\R+1, 10);
\path
(\R, 0) coordinate (S)
(-\R, 0) coordinate (N);
\draw[B, fill=B!30, fill opacity=.5, even odd rule]
(0, 0) circle (\r)
(0, 0) circle (\R);
% \foreach \k [evaluate=\k as \q using \r/(\k*\R-\h)]
% in {1.03, 1.1, 1.2, 1.32, 1.5, 1.7, 2, 2.4, 3, 3.8, 5.1, 8, 17}{%
\foreach \k [evaluate=\k as \q using \r/(\k*\R-\h)]
in {1.03, 1.2, 1.5, 2, 3, 5, 8, 17}{%
\path
($({(1-\k)*\R}, 0) + (-{180*\q}: {\k*\R-\h})$) coordinate (A)
($({(1-\k)*\R}, 0) + ({180*\q}: {\k*\R-\h})$) coordinate (B)
($({(1-\k)*\R}, 0) + ({180/\k}: {\k*\R})$) coordinate (C)
($({(1-\k)*\R}, 0) + (-{180/\k}: {\k*\R})$) coordinate (D);
\draw[B, fill=B!30, fill opacity=.5]
(D) -- (A) arc ({-180*\q}: {180*\q}: {\k*\R-\h}) --
(B) -- (C) arc ({180/\k}: {-180/\k}: {\k*\R}) -- cycle;
}
\draw[B, fill=B!30, fill opacity=.5] (\r, -{3.142*\r}) -- (\r, {3.142*\r})
-- (\R, {3.142*\R}) -- (\R, -{3.142*\R}) -- cycle;
\end{tikzpicture}
```

In the code for the second construction, the lines corresponding to the *\foreach* command and the last two ones are replaced by what follows.

```
\foreach \k in {1.03, 1.2, 1.5, 2, 3, 5, 8, 17}{%
\path
($({(1-\k)*\R}, 0) + (-{180/\k}: {\k*\R-\h})$) coordinate (A)
($({(1-\k)*\R}, 0) + ({180/\k}: {\k*\R-\h})$) coordinate (B)
($({(1-\k)*\R}, 0) + ({180/\k}: {\k*\R})$) coordinate (C)
($({(1-\k)*\R}, 0) + (-{180/\k}: {\k*\R})$) coordinate (D);
\draw[B, fill=B!30, fill opacity=.5]
(D) -- (A) arc ({-180/\k}: {180/\k}: {\k*\R-\h}) --
(B) -- (C) arc ({180/\k}: {-180/\k}: {\k*\R}) -- cycle;
}
\draw[B, fill=B!30, fill opacity=.5]
(\r, -{3.142*\R}) rectangle (\R, {3.142*\R});
```

**Remark.** Since the angles appearing in the command *arc* are
angles measured with respect to the *Ox* axis (of the TikZ coordinate
system), I made all the drawing vertically and then rotated the
images.

With not too many changes, we can obtain animations of the two constructions.

Here is a code yielding the images that compose the first animation, for example.

```
\documentclass[multi=page, margin=10pt]{standalone}
\usepackage[rgb]{xcolor}
\usepackage{tikz}
\usetikzlibrary{math, calc}
\xdefinecolor{R}{RGB}{238, 34, 34}
\xdefinecolor{B}{RGB}{17, 87, 221}
\begin{document}
\tikzmath{%
real \r, \R, \h, \q;
\r = 1.5;
\R = 2.75;
\h = \R-\r;
}
\begin{page}
\begin{tikzpicture}[rotate=-90]
\path[clip] (-\R-2, -10) rectangle (\R+1, 10);
\draw[B, fill=B!50, even odd rule]
(0, 0) circle (\r)
(0, 0) circle (\R);
\end{tikzpicture}
\end{page}
\foreach \k [evaluate=\k as \q using \r/(\k*\R-\h)]
in {1.03, 1.1, 1.2, 1.32, 1.5, 1.7, 2, 2.4, 3, 3.8, 5.1, 8, 17}{%
\begin{page}
\begin{tikzpicture}[rotate=-90]
\path[clip] (-\R-2, -10) rectangle (\R+1, 10);
\path
($({(1-\k)*\R}, 0) + (-{180*\q}: {\k*\R-\h})$) coordinate (A)
($({(1-\k)*\R}, 0) + ({180*\q}: {\k*\R-\h})$) coordinate (B)
($({(1-\k)*\R}, 0) + ({180/\k}: {\k*\R})$) coordinate (C)
($({(1-\k)*\R}, 0) + (-{180/\k}: {\k*\R})$) coordinate (D);
\draw[B, fill=B!50]
(D) -- (A) arc ({-180*\q}: {180*\q}: {\k*\R-\h}) --
(B) -- (C) arc ({180/\k}: {-180/\k}: {\k*\R}) -- cycle;
\draw[R, thick] (A) -- (D) (B) -- (C);
\end{tikzpicture}
\end{page}
}
\foreach \k in {1, 2, 3, 4}{% the last image lasts longer
\begin{page}
\begin{tikzpicture}[rotate=-90]
\path[clip] (-\R-2, -10) rectangle (\R+1, 10);
\draw[B, fill=B!50] (\r, -{3.142*\r}) -- (\r, {3.142*\r})
-- (\R, {3.142*\R}) -- (\R, -{3.142*\R}) -- cycle;
\draw[R, thick]
(\r, -{3.142*\r}) -- (\R, -{3.142*\R})
(\r, {3.142*\r}) -- (\R, {3.142*\R});
\end{tikzpicture}
\end{page}
}
\end{document}
```