如何閉合由圓弧組成的路徑

如何閉合由圓弧組成的路徑

我有以下由某些腳本產生的程式碼。路徑中的第一個和最後一個座標相同。我不知道如何告訴 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

您可以將第一個圓弧加為最後一個圓弧...

編輯。 OP 指出雙弧的出現是不可取的。因此,另一種方法是將第一個弧分成兩個部分弧,分別放置在電路的開頭和結尾:

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

相關內容