Rotulando formas definidas pelo usuário no TikZ

Rotulando formas definidas pelo usuário no TikZ

Modifiquei o código para girar uma forma primitiva de 'correspondência' (adaptado do código giratório da câmera encontrado aqui (Use uma forma personalizada como "bloco de construção").

Como passo o parâmetro label no escopo para que cada correspondência seja um número diferente. Agora, todos os nós estão codificados para '2'

Sou novo no TikZ, então não consigo entender exatamente como fazê-lo.

\documentclass{book}    
\usepackage{tikz}

\begin{document}  

\def\match#1#2{    
\begin{scope}[shift={#1}, rotate=#2]    
\draw (0,0) rectangle (2.5,0.2);    
\draw [fill=black](2.3,0.1) ellipse (0.35 and 0.2) node at (1,0.1)
[fill=white,opacity=.2,text opacity=1,circle, inner sep=0pt,minimum size=1pt]{\textbf{2}};    
\end{scope}    
}

\begin{tikzpicture}    
\match{(0,0)}{45}    
\match{(-0.3,-0.18)}{315}    
\match{(1.85,2.06)}{315}    
\match{(1.89,-1.89)}{45}    
\end{tikzpicture}    
\end{document}

Responder1

Passe o texto do nó como terceiro argumento para \match:

insira a descrição da imagem aqui

\documentclass{book}
\usepackage{tikz}

\begin{document}

\newcommand\match[3]{%
    \begin{scope}[shift={#1}, rotate=#2]
    \draw (0,0) rectangle (2.5,0.2);
    \draw [fill=black](2.3,0.1) ellipse (0.35 and 0.2) node at (1,0.1)
        [fill=white,%
        opacity=.2,%
        text opacity=1,%
        circle,%
        inner sep=0pt,%
        minimum size=1pt]{\textbf{#3}};
    \end{scope}
}

\begin{tikzpicture}
    \match{(0,0)}{45}{4}
    \match{(-0.3,-0.18)}{315}{5}
    \match{(1.85,2.06)}{315}{3}
    \match{(1.89,-1.89)}{45}{1}
\end{tikzpicture}

\end{document}

informação relacionada