TikZ에서 사용자 정의 모양에 라벨 지정

TikZ에서 사용자 정의 모양에 라벨 지정

기본 '일치' 모양을 회전하기 위한 코드를 수정했습니다(여기에 있는 회전 카메라 코드에서 수정됨(사용자 정의 모양을 "빌딩 블록"으로 사용).

각 일치 항목이 다른 숫자가 되도록 범위에 레이블 매개변수를 전달하려면 어떻게 해야 합니까? 이제 모든 노드는 '2'로 하드코딩됩니다.

저는 TikZ를 처음 사용하기 때문에 어떻게 해야 하는지 정확히 이해할 수 없습니다.

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

답변1

노드 텍스트를 세 번째 인수로 전달합니다 \match.

여기에 이미지 설명을 입력하세요

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

관련 정보