從一組座標自動產生邊界“blob”

從一組座標自動產生邊界“blob”

給定一組座標,我想產生該組的邊界“blob”。

我得到的最接近的是這個(令人驚訝的簡單):

\documentclass{standalone}
\usepackage{pgfplots}

\begin{document}
  \begin{tikzpicture}
    \node (p1) at (0, 0) {A};
    \node (p2) at (1, 1) {B};
    \node (p3) at (2, 0.5) {C};
    \draw plot [smooth cycle,tension=1] coordinates {(p1) (p2) (p3)};
  \end{tikzpicture}
\end{document}

其產生:

在此輸入影像描述

這有兩個問題:

  • 繪圖穿過節點而不是圍繞節點。我可以使用類似的修飾符.north在某種程度上修復這個問題,但這非常乏味。
  • 我必須以正確的順序指定邊界座標才能產生正確的結果。

我如何使用 TikZ 從一組無序座標計算邊界斑點?

答案1

如果您願意指定順序,有一個非常簡單的方法可以實現它。

\documentclass{standalone}
\usepackage{pgfplots}

\pgfdeclarelayer{background}
\pgfsetlayers{background,main}
\tikzset{
    expand bubble/.style={
        preaction={draw,line width=10.4pt},
        white,fill,draw,line width=10pt,
    },
}

\begin{document}
  \begin{tikzpicture}
    \node (p1) at (0, 0) {A};
    \node (p2) at (1, 1) {B};
    \node (p3) at (2, 0.5) {C};
    \begin{pgfonlayer}{background}
      \path[expand bubble]plot [smooth cycle,tension=1] coordinates {(p1) (p2) (p3)};
    \end{pgfonlayer}
  \end{tikzpicture}
\end{document}

附言。使用同樣的技巧這裡

PS2。我個人還沒有見過 TeX 中實現的凸包演算法。你能澄清一下你的意思嗎無序座標

相關內容