Wie kann ich einen Pfad aus Bögen schließen?

Wie kann ich einen Pfad aus Bögen schließen?

Ich habe den folgenden Code, der von einem Skript generiert wird. Die erste und die letzte Koordinate im Pfad sind gleich. Ich weiß nicht, wie ich TikZ anweisen kann, den Pfad zu schließen. Ich habe versucht, --cycle hinzuzufügen, aber das scheint nur zu funktionieren, wenn die erste und die letzte Koordinate unterschiedlich sind. Als Workaround kann ich den letzten Punkt leicht verschieben (dann schließt --cycle den Pfad), aber das ist keine elegante Lösung. Wie kann ich den Pfad schließen?

\documentclass[tikz]{standalone}

\begin{document}

\begin{tikzpicture}[x=1cm,y=1cm]%
\filldraw[fill=green!20!white,line width=0.5mm]
   (-4.5:1)
   arc (-4.5 : 4.5   : 1)
   arc (94.5 : 115.5 : 5.3955171743191)
   arc (205.5: 214.5 : 1)
   arc (124.5: -4.5  : 0.47697553269816)
   arc (265.5: 274.5 : 1)
   arc (184.5: 85.5  : 0.85408068546347)
   -- cycle;
  \end{tikzpicture}

\end{document}

Bildbeschreibung hier eingeben

Der Vorschlag von user3337813 funktioniert nicht, der Defekt ist in diesem Beispiel besser sichtbar:

\filldraw[fill=green!20!white] ( -4.5 :1)
arc ( -4.5 : 34.5 :1)
arc ( -55.5 : -64.5 : 12.706204736175 )
arc ( 205.5 : 214.5 :1)
arc ( 124.5 : -4.5 : 0.47697553269816 )
arc ( 265.5 : 274.5 :1)
arc ( 184.5 : 85.5 : 0.85408068546347 )
arc ( -4.5 : 34.5 :1)
-- cycle;
\end{tikzpicture}

Bildbeschreibung hier eingeben

Wenn ich --cycle entferne, sieht das Ergebnis gut aus, aber technisch ist der Pfad offen.

Antwort1

Sie können den ersten Bogen als letzten Bogen hinzufügen ...

BEARBEITEN. Der OP bezeichnet das Auftreten eines Doppelbogens als unerwünscht. Ein alternativer Ansatz besteht daher darin, den ersten Bogen in zwei Teilbögen aufzuteilen, die am Anfang und Ende des Schaltkreises platziert werden:

\documentclass[tikz]{standalone}

\begin{document}

\begin{tikzpicture}[x=1cm,y=1cm]%
\filldraw[fill=green!20!white,line width=0.5mm]
   (-4.5:1)
   arc (-4.4 : 4.5   : 1)% PARTIAL ARC
   arc (94.5 : 115.5 : 5.3955171743191)
   arc (205.5: 214.5 : 1)
   arc (124.5: -4.5  : 0.47697553269816)
   arc (265.5: 274.5 : 1)
   arc (184.5: 85.5  : 0.85408068546347)
   arc (-4.5 : -4.4   : 1)% PARTIAL ARC (COMPLETED)
   -- cycle;
  \end{tikzpicture}
\end{document}

Bildbeschreibung hier eingeben

Dieser BEARBEITETE Ansatz löst den Gegenfall, der in der bearbeiteten Frage des OP gezeigt wird:

\documentclass[tikz]{standalone}

\begin{document}

\begin{tikzpicture}[x=1cm,y=1cm]%
\filldraw[fill=green!20!white] ( -4.5 :1)
arc ( 0 : 34.5 :1)
arc ( -55.5 : -64.5 : 12.706204736175 )
arc ( 205.5 : 214.5 :1)
arc ( 124.5 : -4.5 : 0.47697553269816 )
arc ( 265.5 : 274.5 :1)
arc ( 184.5 : 85.5 : 0.85408068546347 )
arc ( -4.5 : 0 :1)
-- cycle;
\end{tikzpicture}

\end{document}

Bildbeschreibung hier eingeben

Antwort2

Aus irgendeinem Grund scheint es zu funktionieren, wenn Sie 85.5durch ersetzen 85.6. Ich weiß nicht, ob das für Ihre Anwendung akzeptabel ist. Vielleicht gibt es ein Problem mit dem Zyklus, wenn die Punkte zu nahe beieinander liegen.

Bildbeschreibung hier eingeben

\documentclass[border=1mm,tikz]{standalone}
\begin{document}
\begin{tikzpicture}[x=1cm,y=1cm]%
\draw[fill=green!20!white,line width=0.5mm]
   (-4.5:1)
   arc (-4.5 : 4.5   : 1)
   arc (94.5 : 115.5 : 5.3955171743191)
   arc (205.5: 214.5 : 1)
   arc (124.5: -4.5  : 0.47697553269816)
   arc (265.5: 274.5 : 1)
   arc (184.5: 85.6  : 0.85408068546347)
   -- cycle;
  \end{tikzpicture}
\end{document}

verwandte Informationen