円弧でできたパスを閉じるにはどうすればよいですか

円弧でできたパスを閉じるにはどうすればよいですか

スクリプトによって生成された次のコードがあります。パスの最初と最後の座標は同じです。TikZ にパスを閉じるように指示する方法がわかりません。--cycle を追加してみましたが、最初と最後の座標が異なる場合にのみ機能するようです。回避策として、最後のポイントを少しずらすことができます (その後、--cycle でパスを閉じます) が、これはエレガントな解決策ではありません。パスを閉じるにはどうすればよいですか?

\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}

ここに画像の説明を入力してください

user3337813 による提案は機能しません。この例では欠陥がよりよくわかります。

\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}

ここに画像の説明を入力してください

--cycle を削除すると結果は良さそうに見えますが、技術的にはパスは開いています。

答え1

最初の円弧を最後の円弧として追加できます...

編集。投稿者は二重アークの出現は望ましくないと述べています。したがって、別の方法としては、最初のアークを 2 つの部分アークに分割し、回路の最初と最後に配置します。

\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}

ここに画像の説明を入力してください

この編集されたアプローチは、OP の編集された質問に示されている反例を解決します。

\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}

ここに画像の説明を入力してください

答え2

85.5何らかの理由で、 をに置き換えると機能するようです85.6。これがアプリケーションで許容されるかどうかはわかりません。ポイントが近すぎると、サイクルに問題がある可能性があります。

ここに画像の説明を入力してください

\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}

関連情報