如何改变图案的密度?

如何改变图案的密度?

我想使用交叉点图案,但在我看来,点的密度太高。这意味着点之间的距离对我来说太小了。我已经知道我必须定义自己的图案,即

\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

相关内容