我想使用交叉点图案,但在我看来,点的密度太高。这意味着点之间的距离对我来说太小了。我已经知道我必须定义自己的图案,即
\documentclass{scrartcl}
\usepackage{tikz}
\usetikzlibrary{patterns}
\pgfdeclarepatternformonly{my crosshatch dots}{\pgfqpoint{-1pt}{-1pt}}{\pgfqpoint{2.5pt}{2.5pt}}{\pgfqpoint{3pt}{3pt}}%
{
\pgfpathcircle{\pgfqpoint{0pt}{0pt}}{.5pt}
\pgfpathcircle{\pgfqpoint{1.5pt}{1.5pt}}{.5pt}
\pgfusepath{fill}
}
\begin{document}
\begin{tikzpicture}
\draw[pattern=my crosshatch dots] (0,0) rectangle (2,2);
\end{tikzpicture}
\end{document}
问题是我不知道需要以何种方式更改哪些参数 - 我尝试过但结果并不令我满意。有人能帮助我吗?
答案1
要改变模式,首先必须了解所涉及的所有宏。
\pgfpathcircle{\pgfqpoint{0pt}{0pt}}{.5pt}
\pgfpathcircle{\pgfqpoint{1.5pt}{1.5pt}}{.5pt}
\pgfusepath{fill}
是绘制两个半径为 的圆,.5pt
一个在坐标 (0pt,0pt),另一个在 (1.5pt,1.5pt),然后沿着路径重复绘制它们。当然,图案由多条路径组成。想象有一个正方形,左下角在 ,右上角 (-1pt,-1pt)
在(2.5pt,2.5pt)
。要创建图案,用点填充从左角到右角的路径。然后向右移动并重复该过程:现在将从 绘制这条路径(-0.7pt, -1pt)
并(2.5pt,2.3pt)
不断重复。这将填充正方形的下三角形。顶部三角形的过程类似。
你可以想象,如果你想减少点的数量,你可以:a) 增加两个点之间的距离,b) 增加图案中两个点之间的距离,c) 两者结合。
下面我以方法c为例:
\documentclass{scrartcl}
\usepackage{tikz}
\usetikzlibrary{patterns}
\pgfdeclarepatternformonly{my crosshatch dots}{\pgfqpoint{-1pt}{-1pt}}{\pgfqpoint{5pt}{5pt}}{\pgfqpoint{6pt}{6pt}}%
{
\pgfpathcircle{\pgfqpoint{0pt}{0pt}}{.5pt}
\pgfpathcircle{\pgfqpoint{3pt}{3pt}}{.5pt}
\pgfusepath{fill}
}
\begin{document}
\begin{tikzpicture}
\draw[pattern=my crosshatch dots] (0,0) rectangle (2,2);
\end{tikzpicture}
\end{document}
结果:
在这种情况下,最好的方法是使用可选参数\pgfdeclarepatternformonly
并定义一个宏来控制距离。注意:如果这样做,您可能需要将所有内容更改\pgfqpoint
为\pgfpoint
。