
Se eu fizer
\draw (1,1) circle (1pt)
tikz desenhe um pequeno círculo com diâmetro 1pt
de (1,1)
.
Como posso definir um caminho cross
tal que
\draw (1,1) cross (1pt)
desenha uma pequena cruz com diâmetro 1pt
(ajustável em tamanho como o círculo)?
Responder1
cross
comando equivalente a circle
não existe, TiKZ
mas você pode usar um cross out
nó da shapes.misc
biblioteca. 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 cross
o tamanho do nó é definido com minimum size=2*(#1-\pgflinewidth)
e inner
e outer
separações fixadas em 0pt
.
Se o ângulo cruzado não for o que você deseja, você pode alterá-lo com rotate
a opção. A seguir você tem alguns exemplos. Também coloquei circles
sobre 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}
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}
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.