显示 tikz 图片的一部分

显示 tikz 图片的一部分

使用答案在这里,我能够绘制六边形网格。我想只显示此网格的一个圆形区域(以原点为中心),类似于所做的在这个问题中,但背景中不会显示整个六边形。我该怎么做?

谢谢!

\documentclass[11pt]{scrartcl}
\usepackage{fullpage}
\usepackage{tikz}
\usetikzlibrary{calc}
\begin{document}
\begin{center}
\begin{tikzpicture}[x=1.5cm,y=1.5cm]
\newcommand*\rows{6}
\foreach \row in {0, ...,\rows}
    {
    \draw[blue!60]
        % hexagonal grid drawn in three steps corresponding to 3*2 opposite regions
        % diagonal
        ($\row*(0.5, {0.5*sqrt(3)})$) -- ($(\rows,0)+\row*(-0.5, {0.5*sqrt(3)})$)
        ($\row*(1, 0)$) -- ($(\rows/2,{\rows/2*sqrt(3)})+\row*(0.5,{-0.5*sqrt(3)})$)
        ($\row*(1, 0)$) -- ($(0,0)+\row*(0.5,{0.5*sqrt(3)})$)
        ($(0,0)-\row*(0.5, {0.5*sqrt(3)})$) -- ($(0,0)-(\rows,0)-\row*(-0.5,{0.5*sqrt(3)})$)
        ($(0,0)-\row*(1, 0)$) -- ($(0,0)-(\rows/2,{\rows/2*sqrt(3)})-\row*(0.5,{-0.5*sqrt(3)})$)
        ($(0,0)-\row*(1, 0)$) -- ($(0,0)-\row*(0.5,{0.5*sqrt(3)})$)
        % antidiagonal
        ($\row*(-0.5, {0.5*sqrt(3)})$) -- ($(-\rows,0)+\row*(+0.5, {0.5*sqrt(3)})$)
        ($\row*(-1, 0)$) -- ($(-\rows/2,{\rows/2*sqrt(3)})+\row*(-0.5,{-0.5*sqrt(3)})$)
        ($\row*(-1, 0)$) -- ($(0,0)+\row*(-0.5,{0.5*sqrt(3)})$)
        ($(0,0)-\row*(-0.5, {0.5*sqrt(3)})$) -- ($(0,0)-(-\rows,0)-\row*(+0.5, {0.5*sqrt(3)})$)
        ($(0,0)-\row*(-1, 0)$) -- ($(0,0)-(-\rows/2,{\rows/2*sqrt(3)})-\row*(-0.5,{-0.5*sqrt(3)})$)
        ($(0,0)-\row*(-1, 0)$) -- ($(0,0)-\row*(-0.5,{0.5*sqrt(3)})$)
        % vertical strip
        ($\row*(-0.5, {0.5*sqrt(3)})$) -- ($\row*(0.5, {0.5*sqrt(3)})$)
        ($\rows*(-0.5, {0.5*sqrt(3)})+\row*(1,0)$) -- ($\row*(0.5, {0.5*sqrt(3)})$)
        ($\row*(-0.5, {0.5*sqrt(3)})$) -- ($\rows*(0.5, {0.5*sqrt(3)})+\row*(-1,0)$)
        ($(0,0)-\row*(-0.5, {0.5*sqrt(3)})$) -- ($(0,0)-\row*(0.5, {0.5*sqrt(3)})$)
        ($(0,0)-\rows*(-0.5, {0.5*sqrt(3)})-\row*(1,0)$) -- ($(0,0)-\row*(0.5, {0.5*sqrt(3)})$)
        ($(0,0)-\row*(-0.5, {0.5*sqrt(3)})$) -- ($(0,0)-\rows*(0.5, {0.5*sqrt(3)})-\row*(-1,0)$);
    }
\end{tikzpicture}
\end{center}
\end{document}

答案1

您可以\clip在绘图前添加。下面我添加了一个\clip (0,0) circle (4.75cm);,以便我们只能看到指定范围内的网格circle

在此处输入图片描述

代码:

\documentclass[11pt]{scrartcl}
\usepackage{fullpage}
\usepackage{tikz}
\usetikzlibrary{calc}
\begin{document}
\begin{center}
\begin{tikzpicture}[x=1.5cm,y=1.5cm]
\newcommand*\rows{6}
\clip  (0,0) circle (4.75cm);
\foreach \row in {0, ...,\rows} {
    \draw[blue!60, ultra thick]
        % hexagonal grid drawn in three steps corresponding to 3*2 opposite regions
        % diagonal
        ($\row*(0.5, {0.5*sqrt(3)})$) -- ($(\rows,0)+\row*(-0.5, {0.5*sqrt(3)})$)
        ($\row*(1, 0)$) -- ($(\rows/2,{\rows/2*sqrt(3)})+\row*(0.5,{-0.5*sqrt(3)})$)
        ($\row*(1, 0)$) -- ($(0,0)+\row*(0.5,{0.5*sqrt(3)})$)
        ($(0,0)-\row*(0.5, {0.5*sqrt(3)})$) -- ($(0,0)-(\rows,0)-\row*(-0.5,{0.5*sqrt(3)})$)
        ($(0,0)-\row*(1, 0)$) -- ($(0,0)-(\rows/2,{\rows/2*sqrt(3)})-\row*(0.5,{-0.5*sqrt(3)})$)
        ($(0,0)-\row*(1, 0)$) -- ($(0,0)-\row*(0.5,{0.5*sqrt(3)})$)
        % antidiagonal
        ($\row*(-0.5, {0.5*sqrt(3)})$) -- ($(-\rows,0)+\row*(+0.5, {0.5*sqrt(3)})$)
        ($\row*(-1, 0)$) -- ($(-\rows/2,{\rows/2*sqrt(3)})+\row*(-0.5,{-0.5*sqrt(3)})$)
        ($\row*(-1, 0)$) -- ($(0,0)+\row*(-0.5,{0.5*sqrt(3)})$)
        ($(0,0)-\row*(-0.5, {0.5*sqrt(3)})$) -- ($(0,0)-(-\rows,0)-\row*(+0.5, {0.5*sqrt(3)})$)
        ($(0,0)-\row*(-1, 0)$) -- ($(0,0)-(-\rows/2,{\rows/2*sqrt(3)})-\row*(-0.5,{-0.5*sqrt(3)})$)
        ($(0,0)-\row*(-1, 0)$) -- ($(0,0)-\row*(-0.5,{0.5*sqrt(3)})$)
        % vertical strip
        ($\row*(-0.5, {0.5*sqrt(3)})$) -- ($\row*(0.5, {0.5*sqrt(3)})$)
        ($\rows*(-0.5, {0.5*sqrt(3)})+\row*(1,0)$) -- ($\row*(0.5, {0.5*sqrt(3)})$)
        ($\row*(-0.5, {0.5*sqrt(3)})$) -- ($\rows*(0.5, {0.5*sqrt(3)})+\row*(-1,0)$)
        ($(0,0)-\row*(-0.5, {0.5*sqrt(3)})$) -- ($(0,0)-\row*(0.5, {0.5*sqrt(3)})$)
        ($(0,0)-\rows*(-0.5, {0.5*sqrt(3)})-\row*(1,0)$) -- ($(0,0)-\row*(0.5, {0.5*sqrt(3)})$)
        ($(0,0)-\row*(-0.5, {0.5*sqrt(3)})$) -- ($(0,0)-\rows*(0.5, {0.5*sqrt(3)})-\row*(-1,0)$);
    }
\end{tikzpicture}
\end{center}
\end{document}

相关内容