Como definir a posição de uma etiqueta em relação ao seu pino?

Como definir a posição de uma etiqueta em relação ao seu pino?

Considere o seguinte manuscrito LaTeX apresentando uma imagem TikZ de um nó vazio com um rótulo fixado anexado.

\documentclass[tikz]{standalone}
\begin{document}
\begin{tikzpicture}
  \node [draw,pin=x] {};
\end{tikzpicture}
\end{document}

A imagem resultante é

                                                                Um nó com um rótulo fixado

(Esta não é exatamente a imagem que você obteria no código acima: melhorei um pouco a visibilidade do alfinete, para conveniência do leitor.)

Eu sei como ajustar o ângulo e o comprimento do pino (isso está descrito na seção 17.10.3 'A opção de pino' do manual TikZ & PGF para versão 3.0.1a na pág. 241), mas como posso ajustar a posição da etiqueta (ângulo, distância e âncora da etiqueta) em relação à cabeça do pino?

Responder1

Como pode ser visto no código a seguir, a âncora desejada ( southneste caso padrão) é colocada na posição do rótulo e, em seguida, a linha do pino é desenhada do centro do nó ao centro do rótulo:

insira a descrição da imagem aqui

\documentclass[tikz,border=2mm]{standalone} 
\usetikzlibrary{positioning}

\begin{document}
\begin{tikzpicture}
\node [draw, pin={[draw]x}, pin={[draw, anchor=west, red]x}, pin={[draw, anchor=south east, blue]x}] {};
\end{tikzpicture}
\end{document}

Atualizar:

Vamos tentar de novo.

pin={[pin distance=1.2cm, draw, red]0:x},

desenhará um nó de rótulo a uma distância de 1,2 cm da main node.0âncora. A âncora para o nó do rótulo será west. Esta âncora padrão é decidida de acordo com a posição dos rótulos em relação ao nó principal.

pin={[pin distance=1.2cm, draw, blue]74:x}

este colocará a âncora do rótulo padrão ( south west) a uma distância de 1,2 cm seguindo uma linha de 74 graus começando no nó principal .74 âncora. Depois que o nó é colocado, a linha do pino é desenhada entre os centros dos nós. Esta linha não seguirá os 74 graus nem terá 1,2 cm de comprimento.

pin={[name=pin, pin distance=1.2cm, draw, red, anchor=-37]74:\phantom{x}},

igual ao anterior, mas a âncora do nó do rótulo .-37 é colocada a 1,2 cm dos nós principais da âncora .74.

insira a descrição da imagem aqui

\documentclass[tikz,border=2mm]{standalone} 
\usetikzlibrary{positioning}

\begin{document}
\begin{tikzpicture}

\draw[help lines] (-1,-1) grid (4,2);
\node [draw, 
    pin={[pin distance=1.2cm, draw, red]0:x},
    pin={[pin distance=1.2cm, draw, blue]74:x}] (a) {};

\draw[<->] (a.0)-- node[above]{1.2 cm} ++(0:1.2);
\draw[<->] (a.74)-- node[above]{1.2 cm} ++(74:1.2);

\begin{scope}[xshift = 3cm]
\node [draw, 
    pin={[name=pin, pin distance=1.2cm, draw, red, anchor=-37]74:\phantom{x}},
    pin={[pin distance=1.2cm, draw, blue]74:x}] (a) {};

    \draw[red] (pin.center)--(pin.-37);
\end{scope}
\end{tikzpicture}
\end{document}

Responder2

Sua pergunta está duplicada, porém, não consigo encontrá-la (ainda), então, por favor, não vote em minha resposta. Mas guardo na minha coleção de exemplos do LaTeX a resposta:

%%%% aligned-pin
\documentclass[tikz, border=5mm]{standalone}

\tikzset{aligned pin/.style args={[#1]#2:#3}% new sort of pin
    {pin={[%
           inner sep=0pt,%
           label={[%
                append after command={%
                node[%
                     inner sep=0pt,%
                     at=(\tikzlastnode.#2),% 
                     anchor=#1,%
                    ]{#3}%
                }%
            ]center:{}}%
         ]#2:{}}%
    }
        }

    \begin{document}
\begin{tikzpicture}
\draw[thick] (0,0) -- node[pos=0.8,% position of node
                           coordinate,                 % node is behavior as coordinate
                           aligned pin={[east]         % anchor of pin label
                                        120:           % direction of pin
                                        g factor=1.96} % text in pin label
                                  ] {} (3,2);
\end{tikzpicture}
    \end{document}

insira a descrição da imagem aqui

Editar:achei originaisResposta de Qrrbrbirlbel

informação relacionada