如何使用 tikz 轻松指定半圆的半径?

如何使用 tikz 轻松指定半圆的半径?

我编写了下面的代码并得到了下面的图像。

\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}

相关内容