
私が行った場合
\draw (1,1) circle (1pt)
1pt
tikz 直径がの小さな円を描きます(1,1)
。
パスをcross
どのように定義すればよいでしょうか
\draw (1,1) cross (1pt)
直径のある小さな十字を描きます1pt
(円と同じようにサイズを調整できます)?
答え1
cross
に相当するコマンドはcircle
存在しませんが、ライブラリからノードTiKZ
を使用できます。この種のノードはクロスオーバーノードのテキストを追加しますが、必要な操作を行うように簡単に適応できます。cross out
shapes.misc
\tikzset{cross/.style={cross out, draw,
minimum size=2*(#1-\pgflinewidth),
inner sep=0pt, outer sep=0pt}}
circle (1pt)
は半径 1pt の円を描くため、その合計サイズは 2pt になり、cross
ノードのサイズは および で定義されminimum size=2*(#1-\pgflinewidth)
、分離inner
はouter
に固定されます0pt
。
交差角度が希望どおりでない場合は、オプションで変更できます。次に、いくつかの例を示します。円と十字が同じサイズであることを示すために、それらの上にrotate
も配置しました。circles
\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}
答え2
代替ソリューション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}
答え3
それぞれの位置に「x」を書くことができます:
\draw (1,1) node {x};
次のようにフォント サイズを使用してサイズを調整できます。
\draw (1,1) node {\Huge x};
'x' の中心は、実際には指定された座標に正確に配置されます。