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