前回の記事までで,TikZによる
- 直線・円・楕円といった基本的な描線
- 点線や矢印や色など線のスタイル
- $y=f(x)$の基本的なグラフ,媒介変数表示された方程式,極方程式などの描き方
- 便利な座標の定義や,座標計算の方法
など「描線」について説明してきました.
この記事では「領域」の塗り方について説明します.
TikZで領域が塗れるようになると,図による表現の幅が大きく広がりますね.
なお,本稿では以下のように3つのライブラリ”intersections”, “calc”, “arrows.meta”を用います.
1 2 3 4 5 6 7 |
\documentclass[dvipdfmx]{jsarticle} \usepackage{tikz} \usetikzlibrary{intersections,calc,arrows.meta} \begin{document} \end{document} |
なお,ライブラリについては最初の記事で説明しています.
「TikZの使い方」の一連の記事
領域の塗り方
ここでは,座標上の点の定義の仕方を説明します.
基本の領域の塗り方
例えば,
1 2 3 4 5 6 7 |
\begin{tikzpicture} \coordinate[label=left:A] (A) at (0,0); %点Aの定義 \coordinate[label=right:B] (B) at (3,0); %点Bの定義 \coordinate[label=above:C] (C) at (2,2); %点Cの定義 \fill[lightgray] (A)--(B)--(C)--cycle; %三角形ABCをlightgray(明るい灰色)に塗る \draw[very thick] (A)--(B)--(C)--cycle; %三角形ABC \end{tikzpicture} |
と記述すれば,
と表示されます.つまり,
1 |
\fill[塗る色] (描画); |
と記述すれば,(描画)の内部を[塗る色]で塗ることができます.
塗ると同時に描画する方法
いまの描画では,三角形を描くことと三角形の内部を塗ることは別の命令として記述しましたが,これは
1 2 3 4 5 6 |
\begin{tikzpicture} \coordinate[label=left:A] (A) at (0,0); %点Aの定義 \coordinate[label=right:B] (B) at (3,0); %点Bの定義 \coordinate[label=above:C] (C) at (2,2); %点Cの定義 \filldraw[fill=lightgray,very thick] (A)--(B)--(C)--cycle; %三角形ABCを描き,内部をlightgrayに塗る \end{tikzpicture} |
と1行で記述することもできます.つまり,
1 |
\filldraw[fill=塗る色,(描画の命令)] (描画); |
と記述すれば,上の図と同じように描画の内部を[塗る色]で塗り,描画をすることができます.
注意
いくつか注意をします.
塗る順番
描線の場合にはあまり意識せずとも大きな問題になることはありませんが,領域を塗る場合には塗る順番は大切ですね.
TikZのルールとして,図形は命令の順に上に重ねて描かれていきます.
そのため,
1 2 3 4 |
\begin{tikzpicture} \fill[orange] (0,0) circle (1); %(0,0)中心,半径1の円を赤く塗る \fill[blue] (1,0) circle (0.5); %(1,1)中心,半径0.5の円を青く塗る \end{tikzpicture} |
と記述すれば,
となり,この2つの円の記述する順番を入れ替えて
1 2 3 4 |
\begin{tikzpicture} \fill[blue] (1,0) circle (0.5); %(1,1)中心,半径0.5の円を青く塗る \fill[orange] (0,0) circle (1); %(0,0)中心,半径1の円を赤く塗る \end{tikzpicture} |
と記述すれば,
となります.
領域の色
領域の色はLaTeXの色パッケージのxcolor.styに準じます.そのため,以下の基本の19色は色の名前で使うことができます.
色 | 描画 | 色 | 描画 | 色 | 描画 |
---|---|---|---|---|---|
red | green | blue | |||
cyan | magenta | yellow | |||
black | gray | white | |||
darkgray | lightgray | brown | |||
lime | olive | orange | |||
pink | purple | teal | |||
violet |
また,
1 |
\tikz \fill[red!30!blue] (0,0)--(2,0)--(1.5,2)--(0.3,1.3)--cycle; %四角形を赤:青=30:70の色で塗る |
と記述すれば,
と色を混ぜることができます.つまり,
1 |
\tikz \fill[(色1)!p!(色2)] (領域); |
と記述すると,(領域)は(色1)と(色2)を$p:(100-p)$の割合で混ぜた色で塗られます.
詳しくは【https://www.ctan.org/pkg/xcolor】など,xcolor.styの説明のページを参照してください.
塗られる領域
上の例では全て閉領域を記述してその中を塗るように命令してきましたが,描線が閉じていなくても自動で始点と終点を結んで閉じた領域を塗ってくれます.
そのため,例えば
1 |
\tikz \filldraw[fill=lightgray,very thick] (0,0)--(1,1)--(2,1)--(3,0); |
と記述すれば,
となります.
- \draw として (0,0)--(1,1)--(2,1)--(3,0) の線を描き
- \fill として (0,0)--(1,1)--(2,1)--(3,0)--cycle の領域を塗る
というわけですね.
また,単純でない(交差のある)閉曲線になる場合にも囲まれる領域が塗られます.例えば
1 |
\tikz \filldraw[fill=lightgray,very thick] (0,0)--(1,1)--(2,-1)--(3,0); |
と記述すれば,
となります.
コメント