TikZ 圆圈内的网格

TikZ 圆圈内的网格

知道如何在 TikZ 中在圆内绘制均匀网格吗?我可以手动在圆周上添加不可见节点,并用线连接它们,但可能有更复杂的方法来做到这一点?

grid inside a circle

答案1

使用TikZ\clip“剪切”给定路径之外的所有内容,即此处的圆圈,稍后像往常一样绘制网格draw ... grid ...

\documentclass{article}

\usepackage{tikz}

\usetikzlibrary{calc}

\begin{document}
\begin{tikzpicture}
\clip[draw] circle (5cm);
\draw (-5,-5) grid (5,5);
\end{tikzpicture}

\end{document}

enter image description here

答案2

如何使用 MetaPost 来实现这一点,对此感兴趣的人可能会感兴趣。clip <picture> to <path>原始命令是这里的关键。

\documentclass{article}
\usepackage{luamplib}
\begin{document}
\begin{mplibcode}
    path circle; circle = fullcircle scaled 6cm; u = cm; N := 4;
    picture grid;
    beginfig(1);
        grid = image(%
            for i = -N upto N:
                draw ((i, -N) -- (i, N)) scaled u;
            endfor;
            for j = -N upto N:
                draw ((-N, j) -- (N, j)) scaled u;
            endfor;);
        clip grid to circle; draw grid; draw circle;
    endfig;
\end{mplibcode}
\end{document}

enter image description here

相关内容