I am trying to restore the euro to TikZ. My main guide is http://upload.wikimedia.org/wikipedia/commons/5/57/Euro_Construction.svg
The problem I am facing is that I can calculate all the intersections so far, but I can not give Tikzu a command to draw an arc, for example, A to K. So far I could draw this arc using clipping, as I understand it that will not result in a linked track. I try to avoid calculating all angles manually.
There is \ pgfpatharcto for SVG support, although this seems a little redundant, it can do the job, which leads me to the following problem: how can I get \ pgfpoints from the named coordinate, for example (A) use them in \ pgfpatharcto? Even better: How can I use named coordinates in SVG path data? This would basically reduce the problem to writing \ draw ... (B) - (A) svg "a 6 6 0 0 0 (K)" - (O) ...;
What I already have is:

(source: skitch.com )
Uploaded with Skitch
via:
\begin{tikzpicture} \draw[step=5mm, gray, very thin] (-7.5,-7.5) grid (7.5,7.5); % grid % inner and outer circle to be used for the intersections \path[name path=outer] (0,0) circle[radius=6]; \path[name path=inner] (0,0) circle[radius=5]; % upper, semi upper, semi lower and lower horizontal lines. \path[name path=U] (-7.5,1.5) -- (4,1.5); \path[name path=u] (-7.5,0.5) -- (4,0.5); \path[name path=l] (-7.5,-0.5) -- (4,-0.5); \path[name path=L] (-7.5,-1.5) -- (4,-1.5); % the upwards slope and the vertical line at +-40 deg at 5 units. \path[name path=slope] ($(0,-6)!0.25!(40:5)$) -- ($(0,-6)!1.25!(40:5)$); \path[name path=fourty] ($(40:5)!0.5!(-40:5)$) -- ($(40:5)!1.25!(-40:5)$); % naming all the intersections. \path[name intersections={of=outer and slope, by={A}}]; \path[name intersections={of=inner and slope, by={B}}]; \path[name intersections={of=U and slope, by={C}}]; \path[name intersections={of=u and slope, by={D}}]; \path[name intersections={of=l and slope, by={E}}]; \path[name intersections={of=L and slope, by={F}}]; \path[name intersections={of=U and inner, by={G}}]; \path[name intersections={of=u and inner, by={H}}]; \path[name intersections={of=l and inner, by={I}}]; \path[name intersections={of=L and inner, by={J}}]; \path[name intersections={of=U and outer, by={K}}]; \path[name intersections={of=u and outer, by={L}}]; \path[name intersections={of=l and outer, by={M}}]; \path[name intersections={of=L and outer, by={N}}]; \coordinate (O) at ($(-7.5,0.5)+(C)-(D)$); \coordinate (P) at (-7.5,0.5); \coordinate (Q) at ($(-7.5,-1.5)+(E)-(F)$); \coordinate (R) at (-7.5,-1.5); \path[name intersections={of=fourty and inner, by={S}}]; \path[name intersections={of=fourty and outer, by={T}}]; % drawing the intersections \foreach \p in {A,...,T} \fill[red] (\p) circle (2pt) node[above left,black] {\footnotesize\p}; % constructing the path \draw (A) -- (B) (G) -- (C) -- (D) -- (H) (I) -- (E) -- (F) -- (J) (S) -- (T) (N) -- (R) -- (Q) -- (M) (L) -- (P) -- (O) -- (K); % missing segments \draw[gray,dashed] circle[radius=5] circle[radius=6]; \end{tikzpicture}
UPDATE (using pgf mapping list we came to the following solution)
\draw[thick,fill] let \p1=(A), \p2=(K), \p3=(L), \p4=(M), \p5=(N), \p6=(T), \p7=(S), \p8=(J), \p9=(I), \p{10}=(H), \p{11}=(G), \p{12}=(B), \n{aA}={atan2(\x1,\y1)}, \n{aK}={atan2(\x2,\y2)}, \n{aL}={atan2(\x3,\y3)}, \n{aM}={360+atan2(\x4,\y4)}, \n{aN}={360+atan2(\x5,\y5)}, \n{aT}={360+atan2(\x6,\y6)}, \n{aS}={360+atan2(\x7,\y7)}, \n{aJ}={360+atan2(\x8,\y8)}, \n{aI}={360+atan2(\x9,\y9)}, \n{aH}={atan2(\x{10},\y{10})}, \n{aG}={atan2(\x{11},\y{11})}, \n{aB}={atan2(\x{12},\y{12})} in (A) arc (\n{aA}:\n{aK}:6) -- (O) -- (P) -- (L) arc (\n{aL}:\n{aM}:6) -- (Q) -- (R) -- (N) arc (\n{aN}:\n{aT}:6) -- (S) arc (\n{aS}:\n{aJ}:5) -- (F) -- (E) -- (I) arc (\n{aI}:\n{aH}:5) -- (D) -- (C) -- (G) arc (\n{aG}:\n{aB}:5) -- cycle;
This allows TikZ to calculate the angles of points, and then just call an arc. The most difficult thing for me was the use of the mathematical engine. The documentation was too overwhelming and I skipped the part where new values ββare assigned by the mathematical engine using curly braces.