Generar automáticamente un "blob" delimitador a partir de un conjunto de coordenadas

Generar automáticamente un "blob" delimitador a partir de un conjunto de coordenadas

Dado un conjunto de coordenadas, quiero generar una "mancha" delimitadora de este conjunto.

Lo más cerca que he estado es esto (sorprendentemente simple):

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

Que produce:

ingrese la descripción de la imagen aquí

Esto tiene dos problemas:

  • La trama pasa por los nodos en lugar de rodearlos. Podría usar modificadores como .northpara solucionar este problema hasta cierto punto, pero es muy tedioso.
  • Tengo que especificar las coordenadas de los límites en el orden adecuado para producir el resultado correcto.

¿Cómo podría usar TikZ para calcular una mancha delimitadora a partir de un conjunto de coordenadas desordenadas?

Respuesta1

Existe una manera extremadamente fácil de lograrlo, si está dispuesto a especificar el orden.

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

PD. se usa el mismo trucoaquí

PS2. Personalmente no había visto el algoritmo de casco convexo implementado en TeX. ¿Puedes aclarar lo que quisiste decir concoordenadas desordenadas?

información relacionada