% vim: set ft=tex tabstop=4 shiftwidth=4 noexpandtab:

\input{../../include/latex/tikz/header.tex}

%\input{../../include/latex/tikz/header-light.tex}

% opening %{{{1

\begin{document}
\begin{tikzpicture}[scale=1.0]

% parameters %{{{1

% macros %{{{2

% basic %{{{3

	% ---- length is reserved

	%\def\len{3}
	%\def\gth{3}

	%\def\lenAB{3}
	%\def\lenBC{4}
	%\def\lenCA{5}

	%\def\ratio{1.5}
	%\def\ext{3.5}

	% ---- angle can cause trouble

	%\def\ang{60}
	%\def\ngl{60}
	%\def\gle{60}

	%\def\radius{2}

	%\def\numsides{6}
	%\def\rotation{90}

% tikzmath %{{{2

% generic %{{{3

	%\tikzmath{
		%\var = value ;
		%\integer = int(4);
		%int \integer ;
		%\integer = 4 ;
	%}

	% ---- print a variable in the diagram for debugging

	%\node at (0,0) {\var};
	%\node at (0,0) {\pgfmathprintnumber{\var}};

% distance %{{{3

	%\tikzmath{
		%\x1 = 1 ;
		%\y1 = 2 ;
		%\x2 = 3 ;
		%\y2 = 4 ;
		%\dx = \x2 - \x1 ;
		%\dy = \y2 - \y1 ;
		%\dist = veclen(\dx,\dy) ;
	%}

% angle %{{{3

	% ------- in degrees

	%\tikzmath{
		%\x1 = 1 ;
		%\y1 = 2 ;
		%\x2 = 3 ;
		%\y2 = 4 ;
		%\dx = \x2 - \x1 ;
		%\dy = \y2 - \y1 ;
		%\ang = atan2(dy, dx) ;
	%}

% array %{{{3

	% ------- warning
	% ---- int \var ;
	% ------- and not
	% ---- \int \var ;
	% ------- no backslash before int

	%\tikzmath{
		%\radius = 2.0 ;
		%\rotation = 90 ;
		%\numsidesfloat = 6.0 ;
		%\numsides = int(\numsidesfloat) ;
		%int \i ;
		%for \i in {1,...,\numsides} {
			%\ang{\i} = \rotation + 360 / \numsides * (\i-1) ;
		%};
	%}

	%\tikzmath {
		%\unit = 6.0 ;
		%\numunits = int(5) ;
		%\numunitsminus = \numunits - 1 ;
		%\sqrtnumunitsplus = sqrt(\numunits + 1)*\unit ;
		%int \i ;
		%for \i in {1,...,\numunits} {
			%\len{\i} = sqrt(\i)*\unit ;
		%};
		%for \i in {1,...,\numunits} {
			%\ang{\i} = atan2(\unit, \len{\i}) ;
		%};
	%}

% pgfmath %{{{2

	%\pgfmathsetmacro{\ang}{30}
	%\pgfmathsetmacro{\gle}{20}
	%\pgfmathsetmacro{\endang}{\ang+\gle}

	%\pgfmathsetmacro{\ang}{
		%atan2(-4, 3) - 90
	%}

% for integers %{{{3

	%\pgfmathtruncatemacro{\last}{\numsides}
	%\pgfmathtruncatemacro{\prevlast}{\numsides-1}

% bounding box %{{{1

	%\useasboundingbox (\xmin,\ymin) rectangle (\xmax,\ymax);

	%\path[use as bounding box] (\xmin, \ymin) rectangle (\xmax, \ymax);

	%\path (current bounding box.south west) ++(-1,-1)
		%rectangle (current bounding box.north east) ++(1,1);

	%\path[opacity=0] (-2,-2) rectangle (2,2);

	%\clip (\xmin,\ymin) rectangle (\xmax,\ymax);

% frame %{{{2

	%\draw
		%($ (current bounding box.south west) - (0.0, 0.1) $)
		%rectangle
		%(current bounding box.north east);

% coordinates %{{{1

% vectors %{{{2

	% ---- vectors defined independantly of points coordinates

	%\coordinate (vectorCartesian) at (\xcomp,\ycomp);
	%\coordinate (vectorPolar) at (\ang:\len);

% unit vectors %{{{3

	%\coordinate (unitV) at ($ (0,0)!1cm!(v) $);

	%\coordinate (unitV) at (\ang:1);
	%\coordinate (unitV) at ({\ang - \gle}:1);

% coordinates %{{{2

% cartesian and polar %{{{3

	%\coordinate (cartesien) at (1,2);
	%\coordinate (polar) at (\ang:\len);

	%\coordinate (A) at (0,0);
	%\coordinate (B) at (4,0);
	%\coordinate (C) at (4,3);

	%\coordinate (O) at (0,0);
	%\coordinate (A) at (\ang:\radius);
	%\coordinate (B) at (\gle:\radius);

% middle point %{{{3

	%\coordinate (M) at ($ (A)!0.5!(B) $);

% vectors from coordinates %{{{3

	%\coordinate (AB) at ($ (B) - (A) $);

% unit vectors %{{{4

	%\coordinate (unitAB) at ($ (0,0)!1cm!(AB) $);

% operations %{{{3

	%\coordinate (D) at ($ (P) + (v) $);
	%\coordinate (D) at ($ (P) + (AB) $);
	%\coordinate (D) at ($ (P) + \ratio*(AB) $);
	%\coordinate (D) at ($ (P) + \ratio*(B) - \ratio*(A) $);

% loop %{{{3

	%\foreach \i in {1,...,\numunits}
		%\coordinate (P_\i) at ($ (A) + \unit*\i*(v) $);

	%\foreach \i in {1,...,\numunits}
		%\coordinate (P_\i) at ($ (A) + {\len{\i}}*(unitV) $);

% circular indexes, e.g. for polygon %{{{3

% i/j, i/j/k, i/j/k/l syntax %{{{4

	%\foreach \i/\j in {1/2, 2/3, 3/4, 4/5, 5/6, 6/1} {
		%\coordinate (A_\i) at ($ (A) + {\len{\i}}*(unitV) $);
		%\coordinate (B_\j) at ($ (A) + {\len{\j}}*(unitV) $);
	%}

	%\foreach \i/\j/\k in {1/2/3, 2/3/4, 3/4/5, 4/5/6, 5/6/1} {
		%\coordinate (A_\i) at ($ (A) + {\len{\i}}*(unitV) $);
		%\coordinate (B_\j) at ($ (A) + {\len{\j}}*(unitV) $);
		%\coordinate (C_\k) at ($ (A) + {\len{\k}}*(unitV) $);
	%}

% evaluate syntax %{{{4

	% ---- j = [ (i - 1) + 1  ] mod N + 1

	%\foreach \i
		%[
			%evaluate=\i as \j using { int(mod(\i - 1 + 1, \numsides) + 1) }
		%]
		%in {1,...,\numsides}
	%{
		%\coordinate (A_\i) at ($ (A) + {\len{\i}}*(unitV) $);
		%\coordinate (B_\j) at ($ (A) + {\len{\j}}*(unitV) $);
	%}

	%\foreach \i in {1,...,\numsides} {
		%\pgfmathsetmacro{\j}{mod(\i - 1 + 1, \numsides) + 1}
		%\coordinate (A_\i) at ($ (A) + {\len{\i}}*(unitV) $);
		%\coordinate (B_\j) at ($ (A) + {\len{\j}}*(unitV) $);
	%}

	% ---- j = [ (i - 1) + 1  ] mod N + 1
	% ---- k = [ (i - 1) + 2  ] mod N + 1

	%\foreach \i
		%[
			%evaluate=\i as \j using { int(mod(\i - 1 + 1, \numsides) + 1) },
			%evaluate=\i as \k using { int(mod(\i - 1 + 2, \numsides) + 1) }
		%]
		%in {1,...,\numsides}
	%{
		%\coordinate (A_\i) at ($ (A) + {\len{\i}}*(unitV) $);
		%\coordinate (B_\j) at ($ (A) + {\len{\j}}*(unitV) $);
		%\coordinate (C_\k) at ($ (A) + {\len{\k}}*(unitV) $);
	%}

	% ---- j = [ (i - 1) + 1  ] mod N + 1
	% ---- k = [ (i - 1) + 2  ] mod N + 1
	% ---- l = [ (i - 1) + 3  ] mod N + 1

	%\foreach \i
		%[
			%evaluate=\i as \j using { int(mod(\i - 1 + 1, \numsides) + 1) },
			%evaluate=\i as \k using { int(mod(\i - 1 + 2, \numsides) + 1) },
			%evaluate=\i as \l using { int(mod(\i - 1 + 3, \numsides) + 1) }
		%]
		%in {1,...,\numsides}
	%{
		%\coordinate (A_\i) at ($ (A) + {\len{\i}}*(unitV) $);
		%\coordinate (B_\j) at ($ (A) + {\len{\j}}*(unitV) $);
		%\coordinate (C_\k) at ($ (A) + {\len{\k}}*(unitV) $);
		%\coordinate (D_\l) at ($ (A) + {\len{\l}}*(unitV) $);
	%}

% perpendicularity %{{{2

% projections %{{{3

	% ---- projection P of point C onto AB
	% ---- PC perpendicular to AB

	%\coordinate (P) at ($(A)!(C)!(B)$);

% rotate from another vector %{{{3

	% ---- rotate 90° from vector AB and start from A, length \len

	%\coordinate (P) at ($(A)!\ratio!90:(B)$);

% vector decomposition in parallel and perpendicular %{{{3

	% ---- vector AP decomposition in
	% ---- AH parallel to AB
	% ---- HP perpendicular to AB

	%\coordinate (H) at ($(A)!(P)!(B)$);

% orthonormal basis %{{{3

	%\coordinate (E_1) at ($(A)!1!(B)$);
	%\coordinate (E_2) at ($(A)!1!90:(B)$);

% reflection across a straight line %{{{3

	% ---- reflects P across AB

	%\coordinate (H) at ($(A)!(P)!(B)$);
	%\coordinate (Q) at ($(P)!2!(H)$);

	%\coordinate (Q) at ($ (P)!2!($ (A)!(P)!(B) $) $);

% perpendicular bisectors %{{{3

	% ------- médiatrice

	% ---- assuming \lenBisector is defined in cm
	% ---- not without unit, for it would be a scale factor

	%\def\lenBisector{4.0cm}

	% ------- médiatrice [A,B]

	%\coordinate (M) at ($ (A)!0.5!(B) $);
	%\coordinate (X) at ($ (M)!-\lenBisector!90:(B) $);
	%\coordinate (Y) at ($ (M)!\lenBisector!90:(B) $);

	%\coordinate (X) at ($ ($ (A)!0.5!(B) $)!-2!90:(B)$);
	%\coordinate (Y) at ($ ($ (A)!0.5!(B) $)!2!90:(B)$);

	% ---- perpendicular bisector = XY

% angle bisectors %{{{3

	% ------- bissectrice

	% ---- assuming \lenBisector is defined in cm
	% ---- not without unit, for it would be a scale factor

	%\def\lenBisector{4.0cm}

	% ------- bissectrice angle BAC

	%\coordinate (lenAB) at ($(A)!\lenBisector!(B)$);
	%\coordinate (lenAC) at ($(A)!\lenBisector!(C)$);

	% ---- angle bisector = AD

	%\coordinate (D) at ($(lenAB)!0.5!(lenAC)$);

% affine transformations %{{{2

% translated coordinates %{{{3

	%\begin{scope}[shift={(1,2)}]
		%\coordinate (A) at (2,1);
	%\end{scope}

	%\begin{scope}[xshift=1cm, yshift=2cm]
		%\coordinate (A) at (2,1);
	%\end{scope}

% rotated coordinates %{{{3

	%\coordinate (centre) at (1,2);

	%\coordinate (B) at ($(A) rotated around {\rotation:(centre)}$);

	%\begin{scope}[rotate around={\rotation:(centre)}]
		%\coordinate (A) at (2,1);
	%\end{scope}

	%\coordinate (B) at ($(A) rotated by 30$);

	%\begin{scope}[rotate=30]
		%\coordinate (A) at (2,1);
	%\end{scope}

% scaled coordinates %{{{3

	%\begin{scope}[scale=1.5]
		%\coordinate (A) at (2,1);
	%\end{scope}

	%\begin{scope}[xscale=1.5, yscale=1.2]
		%\coordinate (A) at (2,1);
	%\end{scope}

% nested scopes %{{{3

	%\begin{scope}[shift={(1,0)}]
		%\begin{scope}[scale=2]
			%\coordinate (A) at (1,1);
		%\end{scope}
	%\end{scope}

% generic affine transformation %{{{3

	% ---- y = A x + t
	% ---- A = (\matrixXX \matrix XY ; \matrixYX \matrixYY)
	% ---- t = (\translationX, \translationY)

	%\begin{scope}[cm={\matrixXX,\matrixYX,\matrixXY,\matrixYY,(\translationX,\translationY)}]
		%\coordinate (A) at (2,1);
	%\end{scope}

% polygon vertices %{{{2

	%\foreach \i in {1,...,\numsides}
		%\coordinate (P_\i) at ({360/\numsides*(\i-1)+\rotation}:\radius);

	%\foreach \i in {1,...,\numsides}
		%\coordinate (P_\i) at (\ang{\i}:\radius);

% grid %{{{2

	%\foreach \i in {0,...,\xnum}
		%\foreach \j in {0,...,\ynum}
			%\coordinate (P_\i_\j) at ({\xstep*\i},{\ystep*\j});

% intersections %{{{1

	% ------------ warning : two segments must be extended
	% ------------ until the intersection

	% ---- surround with pgfinterruptboundingbox to avoid enlarging
	% ---- the diagram frame

% using path %{{{2

% line & line %{{{3

	%\begin{pgfinterruptboundingbox}
		%\path[name path=line1] (A) -- (C);
		%\path[name path=line2] (B) -- (D);
		%\path[name intersections={of=line1 and line2, by=I}];
	%\end{pgfinterruptboundingbox}

% line & circle %{{{3

	%\begin{pgfinterruptboundingbox}
		%\path[name path=line] (A) -- (B);
		%\path[name path=circle] (C) circle (\radius);
		%\path[name intersections={of=line and circle, by={I,J}}];
	%\end{pgfinterruptboundingbox}

	%\begin{pgfinterruptboundingbox}
		%\path[name path=line] (X) -- (Y);
		%\path[name path=circle]
		%let
			%\p1 = ($(A)-(O)$)
		%in (O) circle ({veclen(\x1,\y1)});
		%\path[name intersections={of=line and circle, by={I,J}}];
	%\end{pgfinterruptboundingbox}

% circle & circle %{{{3

	%\begin{pgfinterruptboundingbox}
		%\path[name path=circleA] (A) circle (\radius);
		%\path[name path=circleB] (B) circle (\radius);
		%\path[name intersections={of=circleA and circleB, by={I,J}}];
	%\end{pgfinterruptboundingbox}

	%\begin{pgfinterruptboundingbox}
		%\path[name path=circleA] (A) circle (\radius);
		%\path[name path=circleB]
		%let
			%\p1 = ($ (A) - (O) $)
		%in (O) circle ({veclen(\x1,\y1)});
		%\path[name intersections={of=circleA and circleB, by={I,J}}];
	%\end{pgfinterruptboundingbox}

% debug %{{{3

	%\path[
		%name intersections={
			%of=lineA and lineB,
			%total=\t,
			%by=I
		%}
		%];

% using tkz-euclide %{{{2

% line & line %{{{3

	%\begin{pgfinterruptboundingbox}
		%\tkzInterLL(A,B)(C,D)\tkzGetPoint{I}
	%\end{pgfinterruptboundingbox}

% line & circle %{{{3

	%\begin{pgfinterruptboundingbox}
		%\coordinate (C) at ($ (O) + (\radius, 0) $);
		%\tkzInterLC(A,B)(O,C)\tkzGetPoints{I}{J}
	%\end{pgfinterruptboundingbox}

% circle & circle %{{{3

	%\begin{pgfinterruptboundingbox}
		%\coordinate (C_1) at ($ (O_1) + (\radius, 0) $);
		%\coordinate (C_2) at ($ (O_2) + (\ang:\radius) $);
		%\tkzInterCC(O_1,C_1)(O_2,C_2)\tkzGetPoints{I}{J}
	%\end{pgfinterruptboundingbox}

% loop %{{{3

	%\begin{pgfinterruptboundingbox}
		%\foreach \i
			%[
				%evaluate=\i as \j using { int(mod(\i, \numsides) + 1) },
				%evaluate=\i as \k using { int(mod(\i + 1, \numsides) + 1) },
				%evaluate=\i as \l using { int(mod(\i + 2, \numsides) + 1) }
			%]
			%in {1,...,\numsides}
		%{
			%\tkzInterLL(P_\i,P_\k)(P_\j,P_\l)\tkzGetPoint{I_\j}
		%}
	%\end{pgfinterruptboundingbox}

% in case of two intersections %{{{3

	%\tkzGetFirstPoint{I}

	% ---- or

	%\tkzGetSecondPoint{J}

% distance %{{{1

	% ------- .../1cm or .../28.45 is a necessary scale factor
	% ------- unit change from pt to cm

	%\path let \p1 = ($ (B) - (A) $)
	%in \pgfextra{
		%\pgfmathsetmacro{\distAB}{veclen(\x1,\y1)/1cm}
		%\global\let\distAB\distAB
	%};

	%\path let
		%\p1 = (A),
		%\p2 = (B)
	%in \pgfextra{
		%\pgfmathsetmacro{\dist}{veclen(\x2-\x1,\y2-\y1)/1cm}
		%\global\let\distAB\distAB
	%};

% direct drawing %{{{2

	%\path let \p1 = ($ (B) - (A) $)
	%in coordinate (C) at (0,{veclen(\x1,\y1)});

	%\path let \p1 = ($ (B) - (A) $)
	%in \pgfextra{
		%\pgfmathsetmacro{\dist}{veclen(\x1,\y1)};
		%\node at (0,0) {Distance: \dist};
	%};

% points, dots, vertices %{{{1

	%\fill (O) circle (0.4mm);

	%\fill (A) circle (0.4mm);
	%\fill (B) circle (0.4mm);
	%\fill (C) circle (0.4mm);
	%\fill (D) circle (0.4mm);

% loop %{{{2

	%\foreach \i in {1,...,\numsides}
		%\fill (P_\i) circle (0.4mm);

% polygon vertices %{{{2

	%\foreach \i in {1,...,\numsides}
		%\fill (P_\i) circle (0.4mm);

% grid vertices %{{{2

	%\foreach \i in {0,...,\xnum}
		%\foreach \j in {0,...,\ynum}
			%\fill (P_\i_\j) circle (0.4mm);

% segments, sides, lines %{{{1

	%\draw (A) -- (B);

	%\foreach \i in {1,...,\numsides}
		%\draw (O) -- (P_\i);

	%\draw (O) -- ($ (A) rotated around {45:(O)} $);

% projections %{{{2

	% ------- draw horizontally from A to vertical line
	% ------- passing through B

	%\draw (A) -| (B);

	% ------- draw vertically from A to horizontal line
	% ------- passing through B

	%\draw (A) |- (B);

% loop %{{{2

	%\draw (P_1) \foreach \i in {2,...,\numsides} { -- (P_\i) } -- cycle;

	%\foreach \i in {1,...,\numsides}
		%\draw (O) -- (P_\i);

	%\foreach \i
		%[
			%evaluate=\i as \j using { int(mod(\i - 1 + 1, \numsides) + 1) }
		%]
		%in {1,...,\numsides}
	%{
		%\draw (P_\i) -- (P_\j);
	%}

% vectors %{{{2

	%\draw[vector] (A) -- (B);

% polygons %{{{2

	%\draw (A) -- (B) -- (C) -- cycle;

	%\draw (P_1) \foreach \i in {2,...,\numsides} { -- (P_\i) } -- cycle;

	% ---- needs shapes.geometric

	%\node[
		%draw,
		%regular polygon,
		%regular polygon sides=5
		%] {Pentagon};

% grid %{{{2

	%\draw[step=\xstep] (0,0) grid ({\xstep*\xnum},{\ystep*\ynum});

	%\draw[xstep=\xstep,ystep=\ystep]
		%(0,0) grid ({\xstep*\xnum},{\ystep*\ynum});

	% ---- boundary

	%\draw (P_0_0) -- (P_0_\ynum);
	%\draw (P_\xnum_0) -- (P_\xnum_\ynum);
	%\draw (P_0_0) -- (P_\xnum_0);
	%\draw (P_0_\ynum) -- (P_\xnum_\ynum);

	% ---- interior vertical lines

	%\foreach \i in {1,...,\xnumM}
		%\draw[dashed] ($(P_\i_0)$) -- ($(P_\i_\ynum)$);

	% ---- interior horizontal lines

  %\foreach \j in {1,...,\ynumM}
	  %\draw[dashed] ($ (P_0_\j) $) -- ($(P_\xnum_\j)$);

% circles %{{{1

	%\draw (O) circle (\radius);

	%\path[draw] let \p1 = ($ (A) - (O) $)
	%in (O) circle ({veclen(\x1,\y1)});

% circular arcs %{{{2

	%\draw (A) ++(\ang:\radius) arc (\ang:\gle:\radius);

	%\draw (A) ++(\gle:\radius) arc (\gle:{\ang+360}:\radius);

    %\draw (B) arc (\ang:\gle:\radius);

	%\draw (B) arc[start angle=0, end angle=40, radius=\radius];

	%\path[draw] let
		%\p1 = ($(A)-(O)$),
		%\n1 = {veclen(\x1,\y1)}
	%in (I) ++(\ang:\n1) arc (\ang:\gle:\n1);

	%\draw[vector] (A) arc (\ang:\endang:\radius);
	%\draw[mid arrow] (A) arc (\ang:\endang:\radius);

% radiuses %{{{2

	%\draw (O) -- (P_1);

	%\foreach \i in {1,...,\numsides} { \draw (O) -- (P_\i); }

	%\foreach \i in {2,...,\prevlast} { \draw[dashed] (O) -- (P_\i); }
	%\foreach \i in {2,...,\numexpr\numsides-1\relax} { \draw[dashed] (O) -- (P_\i); }

% functions plots %{{{1

	%\draw plot coordinates {(0,0) (1,1) (2,0) (3,2)};

	%\draw[domain=0:3, samples=50] plot (\x, {sin(deg(\x))});

	%\draw[domain=0:6.28, samples=100, smooth]
		%plot ({cos(deg(\x))}, {sin(deg(\x))});

	%\draw plot \foreach \x in {0,...,5} { (\x,{sin(\x)}) };

	%\draw plot coordinates {
		%\foreach \x in {0,0.5,...,3} {
			%(\x,{sin(deg(\x))})
		%}
	%};

	%\foreach \y in {0,1,2} {
		%\draw plot coordinates {(0,\y) (1,\y+0.5) (2,\y+0.2) (3,\y+1)};
	%}

	%\foreach \a in {1,2,3} {
		%\draw[domain=0:3, samples=50] plot (\x, {sin(deg(\a*\x))});
	%}

% with markers %{{{2

	% ---- plot[mark=*] : adds markers at each sampled point.

% points, dots, vertices labels %{{{1

	%\node[below] at (A) {$A$};
	%\node[below] at (B) {$B$};
	%\node[above] at (C) {$C$};
	%\node[above] at (D) {$D$};

	%\node[anchor=south west] at ($ (A) + (\ang:\dist) $) {$A$};

	%\node[above right, xshift=2pt, yshift=-1pt] at (A) {$A$};
	%\node[label={[label distance=0.5]\ang:$A$}] at (A) {};

% segments, sides, lines labels %{{{1

	%\node[above] at ($ (A)!0.5!(B) $) {$d$};

% segments, sides, lines marks %{{{1

% single mark %{{{2

	% ----|----

	%\tkzMarkSegments[mark=|, size=2pt, pos=0.5](A,B)
	%\tkzMarkSegments[mark=|, size=2pt, pos=0.5](C,D)

% double mark %{{{2

	% ----||----

	%\tkzMarkSegments[mark=||, size=2pt, pos=0.5](A,B)
	%\tkzMarkSegments[mark=||, size=2pt, pos=0.5](C,D)

% spaced double mark %{{{2

	% ----|--|----

	%\tkzMarkSegments[mark=|, size=2pt, pos=0.45](A,B)
	%\tkzMarkSegments[mark=|, size=2pt, pos=0.55](A,B)

% spaced triple mark %{{{2

	% ----|--|--|----

	%\tkzMarkSegments[mark=|, size=2pt, pos=0.45](A,B)
	%\tkzMarkSegments[mark=|, size=2pt, pos=0.50](A,B)
	%\tkzMarkSegments[mark=|, size=2pt, pos=0.55](A,B)

% spaced double mark, doubled %{{{2

	% ----||--||----

	%\tkzMarkSegments[mark=||, size=2pt, pos=0.45](A,B)
	%\tkzMarkSegments[mark=||, size=2pt, pos=0.55](A,B)

% spaced double mark, tripled %{{{2

	% ----||--||--||----

	%\tkzMarkSegments[mark=||, size=2pt, pos=0.45](A,B)
	%\tkzMarkSegments[mark=||, size=2pt, pos=0.50](A,B)
	%\tkzMarkSegments[mark=||, size=2pt, pos=0.55](A,B)

% loop %{{{2

	%\foreach \i
		%[
			%evaluate=\i as \j using { int(mod(\i - 1 + 1, \numsides) + 1) }
		%]
		%in {1,...,\numsides}
	%{
		%\tkzMarkSegments[mark=|, size=2pt](P_\i,P_\j);
	%}

% circles labels %{{{1

	%\node at ($ (O) + (45:\radius + 0.3) $) {$\mathscr{C}$};
	%\node at ($ (A) + (45:\radius + 2mm) $) {$\mathscr C(A,r)$};

% circular arcs labels %{{{2

	%\node at ($ (O) + (45:\radius + 0.3) $) {$\mathscr{C}$};

	%\node at ($ (A) + {\radiusA + 0.2}*(u) $) {$\mathscr{C}_1$};
	%\node at ($ (B) + {\radiusB + 0.2}*(v) $) {$\mathscr{C}_2$};

% angles labels %{{{1

	%\pic[draw, ->, "$\alpha$", angle radius=0.8cm, angle eccentricity=1.5]
		%{angle = B--A--C};

	%\pic[draw, ->, "$60^\circ$", angle radius=0.8cm, angle eccentricity=1.5]
		%{angle = B--A--C};

% adjust %{{{2

	%\pic[draw, ->, "$60^\circ$" {xshift=-1, yshift=6}, angle radius=0.8cm, angle eccentricity=1.5]
		%{angle = O--P_2--P_1};

% double arrow %{{{2

	%\pic[draw, double arrow, "$\alpha$", angle radius=0.8cm, angle eccentricity=1.5]
		%{angle = B--A--D};

% loop %{{{2

	%\foreach \i
		%[
			%evaluate=\i as \j using { int(mod(\i - 1 + 1, \numsides) + 1) }
		%]
		%in {1,...,\numsides}
	%{
		%\pic[draw, ->, "$60^\circ$", angle radius=0.7cm, angle eccentricity=1.5]
			%{angle = P_\i--O--P_\j};
	%}

	%\foreach \i
		%[
			%evaluate=\i as \j using { int(mod(\i - 1 + 1, \numsides) + 1) }
		%]
		%in {1,...,\numsides}
	%{
		%\ifodd\i
			%\def\angradius{0.7cm}
		%\else
			%\def\angradius{0.6cm}
		%\fi
		%\pic[draw, ->, "$60^\circ$", angle radius=\angradius, angle eccentricity=1.5]
			%{angle = P_\i--O--P_\j};
	%}

	%\foreach \i
		%[
			%evaluate=\i as \j using { int(mod(\i - 1 + 1, \numsides) + 1) }
		%]
		%in {1,...,\numsides}
	%{
		%\pic[draw, ->, "$60^\circ$", angle radius=0.7cm, angle eccentricity=1.5]
			%{angle = P_\j--P_\i--O};
		%\pic[draw, ->, "$60^\circ$", angle radius=0.7cm, angle eccentricity=1.5]
			%{angle = O--P_\j--P_\i};
	%}

	%\foreach \i
		%[
			%evaluate=\i as \j using { int(mod(\i - 1 + 1, \numsides) + 1) },
			%evaluate=\i as \k using { int(mod(\i - 1 + 2, \numsides) + 1) }
		%]
		%in {1,...,\numsides}
	%{
		%\pic[draw, ->, "$30^\circ$", angle radius=1.1cm, angle eccentricity=1.3]
			%{angle = P_\j--P_\i--P_\k};
		%\pic[draw, ->, "$30^\circ$", angle radius=1.1cm, angle eccentricity=1.3]
			%{angle = P_\i--P_\k--P_\j};
	%}

	%\foreach \i
		%[
			%evaluate=\i as \j using { int(mod(\i - 1 + 2, \numsides) + 1) },
			%evaluate=\i as \k using { int(mod(\i - 1 + 4, \numsides) + 1) }
		%]
		%in {1,...,\numsides}
	%{
		%\pic[draw, ->, "$60^\circ$", angle radius=1.1cm, angle eccentricity=1.3]
			%{angle = P_\k--P_\j--P_\i};
	%}

% right angles markers %{{{2

	%\pic [draw, angle radius=7pt, angle eccentricity=1]
		%{right angle = C--B--A};

	%\tkzMarkRightAngle[size=0.2](C,B,A)

% loop %{{{3

	%\foreach \i
		%[
			%evaluate=\i as \j using { int(mod(\i, \numsides) + 1) }
		%]
		%in {1,...,\numsides}
	%{
		%\pic [draw, angle radius=7pt, angle eccentricity=1]
			%{right angle = O--I_\i--P_\j};
	%}

% text boxes %{{{2

	%\node at (x,y) {Text};

	%\node[draw] at (A) {Hello};

	%\node[draw, anchor=west] at (A) {Hello};

	%\node[
		%draw,
		%align=center
		%] at (2,1) {First line\\Second line};

	%\node[
		%draw,
		%text width=3cm
		%] at (2,1) {This text will automatically wrap inside the box.};

	%\node[
		%draw,
		%rectangle,
		%rounded corners,
		%fill=blue!10,
		%inner sep=4pt
		%] at (2,1) {Hello};

% dimensions %{{{1

% coordinates for dimension lines %{{{2

	%\coordinate (IdJ) at ($ (I) + (0,0.7) $);

% dimension lines %{{{2

	%\draw[dimension] (IdJ) -- (JdI);
	%\draw[dimension extension] (I) -- (IdJ);
	%\draw[dimension extension] (J) -- (JdI);

% bounding box at the end %{{{1

	%\pgfresetboundingbox
		%\path (\xmin,\ymin) rectangle (\xmax,\ymax);

% closing %{{{1

\end{tikzpicture}
\end{document}
