有没有一种好的方法,不用 /forloop 就能用格点填充多边形内部?也许像 /fill 函数那样?
答案1
用一个pattern
。
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary {patterns.meta, shapes.geometric}
\tikzset{polygrid/.style={draw, regular polygon, regular polygon sides=#1, pattern={Dots[distance=5mm]}}}
\begin{document}
\begin{tikzpicture}
\node[polygrid=7, minimum size=5cm]{};
\end{tikzpicture}
\end{document}
答案2
您可以使用 TikZ 或 Asymptote 创建用户定义的模式。
// http://asymptote.ualberta.ca/
unitsize(1cm);
import patterns;
picture pic;
real d= 1mm;
fill(pic,box((-d,-d),(d,d)),white);
fill(pic,circle((0,0),d/4));
add("mydots",pic);
path p = (0,0)--(6,-1)--(5,4)--(1,3)--cycle;
filldraw(p,pattern("mydots"),blue);
shipout(bbox(5mm,invisible));