
Si lo hago
\draw (1,1) circle (1pt)
tikz dibuja un pequeño círculo con un diámetro 1pt
de (1,1)
.
¿Cómo puedo definir un camino cross
tal que
\draw (1,1) cross (1pt)
¿Dibuja una pequeña cruz con diámetro 1pt
(ajustable en tamaño al igual que el círculo)?
Respuesta1
cross
El comando equivalente a circle
no existe TiKZ
pero puedes usar un cross out
nodo de shapes.misc
la biblioteca. Este tipo de nodo añade un texto cruzado sobre el nodo, pero es fácil adaptarlo para hacer lo que quieras.
\tikzset{cross/.style={cross out, draw,
minimum size=2*(#1-\pgflinewidth),
inner sep=0pt, outer sep=0pt}}
Debido a que circle (1pt)
se dibuja un círculo con radio = 1 pt, su tamaño total será de 2 pt, entonces cross
el tamaño del nodo se define con minimum size=2*(#1-\pgflinewidth)
y inner
y outer
las separaciones fijadas en 0pt
.
Si el ángulo transversal no es lo que desea, puede cambiarlo con rotate
la opción. A continuación tienes algunos ejemplos. También los he colocado circles
encima para mostrar que el círculo y las cruces tienen el mismo tamaño.
\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}
Respuesta2
Solución 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}
Respuesta3
Puedes escribir una "x" en la posición respectiva:
\draw (1,1) node {x};
Luego puedes ajustar el tamaño usando tamaños de fuente como este:
\draw (1,1) node {\Huge x};
En realidad, el centro de la 'x' se coloca exactamente en las coordenadas dadas.