我编写了下面的代码并得到了下面的图像。
\documentclass[border=1cm]{standalone}
\usepackage{tikz}
\usetikzlibrary{shapes.geometric}
\begin{document}
\begin{tikzpicture}
\draw(0,0)node[draw,shape=semicircle,rotate=90,anchor=south,inner sep=1cm,fill=green!60]{};
\draw[step=1cm,help lines,dashed](-4,-4)grid(4,4);
\foreach \i in {-4,...,4}{
\foreach \j in {-4,...,4}{
\draw(\i,\j)node[below right]{\tiny$(\i,\j)$};
}
}
\end{tikzpicture}
\end{document}
我想将网格中的半圆半径改为 2。
我可以通过改变上面的一些代码来实现它吗?
指定“radius=2”效果不佳。
答案1
你可以画一个圆弧来做到这一点。
\draw[fill=green!60] (0,2) arc (90:270:2) -- cycle;
这样,我们绘制一个从点 (0,2) 开始的圆弧,初始角度为 90,结束角度为 270,半径为 2。
更改您的代码:
\documentclass[border=1cm]{standalone}
\usepackage{tikz}
%\usetikzlibrary{shapes.geometric} % <-- noth needed
\begin{document}
\begin{tikzpicture}
\draw[fill=green!60] (0,2) arc (90:270:2) -- cycle;
\draw[step=1cm,help lines,dashed](-4,-4)grid(4,4);
\foreach \i in {-4,...,4}{
\foreach \j in {-4,...,4}{
\draw(\i,\j)node[below right]{\tiny$(\i,\j)$};
}
}
\end{tikzpicture}
\end{document}
答案2
显然,圆弧解决方案是可行的。但是如果您仍然想使用半圆形节点,也可以这样做,但必须使用inner sep=0pt
和进行设置minimum height=2cm
。
\documentclass[border=1cm]{standalone}
\usepackage{tikz}
\usetikzlibrary{shapes.geometric}
\begin{document}
\begin{tikzpicture}
\draw(0,0)node[draw,shape=semicircle,rotate=90,anchor=south,inner sep=0pt, minimum height=2cm,fill=green!60]{};
\draw[step=1cm,help lines,dashed](-4,-4)grid(4,4);
\foreach \i in {-4,...,4}{
\foreach \j in {-4,...,4}{
\draw(\i,\j)node[below right]{\tiny $(\i,\j)$};
}
}
\end{tikzpicture}
\end{document}