見出し画像

TikZで斜線で塗りつぶす方法

TikZで斜線で塗りつぶす方法を書く。コードの全体は最下部に貼りました。

手順

  \path[clip] plot[domain=0:pi] ({\x}, {sin(\x r)}) -- cycle;

斜線で塗りつぶしたい領域のpathを作ってclipします。clipした領域の外部は編集できなくなります。

\foreach \t in {1,2,...,20}{
    \path[draw] (0.15*\t, 0) -- (0.15*\t + 0.4, 1);
  }

clipした領域から若干はみでるように,繰り返し斜線を引きます。clipした領域の外部は描画されないので,clipした領域だけが斜線で塗りつぶされます。

clipした領域の外部を編集したい場合は,

\begin{scope}
~
\end{scope}

で,clipの効果が及ぶ範囲を限定します。

以下,TeXソースまるごとです.

\RequirePackage{luatex85}
\documentclass[border=15pt]{standalone}
\usepackage{tikz}
\usepackage{newpxtext, newpxmath}
\begin{document}
 \begin{tikzpicture}
   \path[draw] plot[domain=0:2*pi] ({\x},{sin(\x r)});
   \path[draw,->,>=stealth] (0, -2) -- (0, 2) node[above]{$y$};
   \path[draw,->,>=stealth] (-1, 0) -- (7.5, 0) node[below]{$x$};
   \node at (pi,1) {$y=\sin x$};
   \node[below left] at (0,0){$\mathrm{O}$};
   \begin{scope}
     \path[clip] plot[domain=0:pi] ({\x}, {sin(\x r)}) -- cycle;
     \foreach \t in {1,2,...,20}{
       \path[draw] (0.15*\t, 0) -- (0.15*\t + 0.4, 1);
     }
   \end{scope}
 \end{tikzpicture}
\end{document}

お役に立ったらスキしてください. サポートは投稿を続けるモチベーションになります. ありがとうございます.