Dado um conjunto de coordenadas, quero gerar uma "bolha" delimitadora desse conjunto.
O mais próximo que cheguei foi este (surpreendentemente simples):
\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}
O que produz:
Isso tem dois problemas:
- O enredo passa pelos nós em vez de contorná-los. Eu poderia usar modificadores para
.north
corrigir isso até certo ponto, mas isso é muito tedioso. - Tenho que especificar as coordenadas do limite em uma ordem adequada para produzir o resultado correto.
Como eu poderia usar o TikZ para calcular um blob delimitador a partir de um conjunto de coordenadas não ordenadas?
Responder1
Existe uma maneira extremamente fácil de conseguir isso, se você estiver disposto a especificar o pedido.
\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}
PS. o mesmo truque é usadoaqui
PS2. Eu pessoalmente não tinha visto o algoritmo de casco convexo implementado no TeX. Você pode esclarecer o que você quis dizer comcoordenadas não ordenadas?