Desenhe cruzes no tikz

Desenhe cruzes no tikz

Se eu fizer

\draw (1,1) circle (1pt)

tikz desenhe um pequeno círculo com diâmetro 1ptde (1,1).

Como posso definir um caminho crosstal que

\draw (1,1) cross (1pt)

desenha uma pequena cruz com diâmetro 1pt(ajustável em tamanho como o círculo)?

Responder1

crosscomando equivalente a circlenão existe, TiKZmas você pode usar um cross outnó da shapes.miscbiblioteca. Esse tipo de nó adiciona um cruzamento ao texto do nó, mas é fácil adaptá-lo para fazer o que você deseja.

\tikzset{cross/.style={cross out, draw, 
         minimum size=2*(#1-\pgflinewidth), 
         inner sep=0pt, outer sep=0pt}}

Como circle (1pt)desenha um círculo com raio = 1pt, seu tamanho total será 2pt, então crosso tamanho do nó é definido com minimum size=2*(#1-\pgflinewidth)e innere outerseparações fixadas em 0pt.

Se o ângulo cruzado não for o que você deseja, você pode alterá-lo com rotatea opção. A seguir você tem alguns exemplos. Também coloquei circlessobre eles apenas para mostrar que o círculo e as cruzes têm tamanhos iguais.

\documentclass[tikz, border=2mm]{standalone}
\usetikzlibrary{shapes.misc}

\tikzset{cross/.style={cross out, draw=black, minimum size=2*(#1-\pgflinewidth), inner sep=0pt, outer sep=0pt},
%default radius will be 1pt. 
cross/.default={1pt}}

\begin{document}
\begin{tikzpicture}[]

\draw (0,0) circle (1pt);

\draw (.5,0) node[cross,rotate=10] {};
\draw (.5,0) circle (1pt);

\draw (0,.5) circle (1pt);
\draw (0,.5) node[cross,red] {};

\draw (.5,.5) node[cross,rotate=30] {};

\draw (0.25,.25) circle (2pt);
\draw (0.25,.25) node[cross=2pt,rotate=45,green]{};
\end{tikzpicture}
\end{document}

insira a descrição da imagem aqui

Responder2

Solução alternativa usando pic:

\documentclass[]{standalone}

\usepackage{tikz}
\usepackage{pgfplots}
\pgfplotsset{compat=1.16}

\tikzset{
    cross/.pic = {
    \draw[rotate = 45] (-#1,0) -- (#1,0);
    \draw[rotate = 45] (0,-#1) -- (0, #1);
    }
}

\begin{document}



\begin{tikzpicture}

    \draw (0,0) circle (1pt);

    \path (.5,0) pic[rotate = 10] {cross=1pt};
    \draw (.5,0) circle (1pt);

    \draw (0,.5) circle (1pt);
    \path (0,.5) pic[red] {cross=1pt};

    \draw (.5,.5) pic[rotate = 30] {cross=1pt};

    \draw (0.25,.25) circle (2pt);
    \draw (0.25,.25) pic[rotate=45,green] {cross=2pt};
\end{tikzpicture}

\end{document}

insira a descrição da imagem aqui

Responder3

Você pode escrever um “x” na respectiva posição:

\draw (1,1) node {x};

Você pode então ajustar o tamanho usando tamanhos de fonte como este:

\draw (1,1) node {\Huge x};

O centro do 'x' na verdade é colocado exatamente nas coordenadas fornecidas.

informação relacionada