コードDE描画

プログラミングで図を描く練習

【LaTeX】【tikz入門】曲線を8種類描く

数式を扱うLaTeXではtikzパッケージで図形描画を行うことができる。

円や放物線、サインカーブなど、一般的に使われる曲線は、グラフやプロットなどを使わなくても描けるように構文があらかじめ用意されている。

そのような便利な構文を8つピックアップする。

準備

tikzパッケージを使用するためには、プリアンブル(\\begin\{document\}の前)に次のように記述して、tikzパッケージを使えるようにさせる。

\usepackage{tikz}

ここでエラーが出る場合は、使っている環境にtikzパッケージがインストールされていないので、別途インストールする必要がある。

基本構文

\begin{tikzpicture}
\命令 [オプション] (座標) 構文;
\end{tikzpicture}
  • \\命令は以下3つのどれかを使って図形を描く
    • \\draw 線で描く
    • \\fill 塗りつぶす
    • \\filldraw 塗りつぶした上で縁を別の色で描く
      • \\filldrawにオプションで \[fill=色,draw= 色\]のように指定する
  • 座標について
    • 座標は直行座標(x,y)または極座標(t:r)使える
    • 座標やオプションの値など共通して、長さの単位はセンチメートル、角度の単位は度数を使う
    • x軸は右が正で、y軸は上が正。右方向が角度の0度で、左回りが正。

具体例

任意の曲線

曲線は2つの座標をtoでつなげ、オプションでそれぞれ角度を指定する。outは始点から出る線の角度で、inは終点から入る線の角度。それぞれ単位は度数。

\begin{tikzpicture}
\draw (0,0) to [out=-30,in=-150] (2,0);
\end{tikzpicture}
  • 実行結果

任意の曲線
任意の曲線

円は指定した座標を中心点として、オプションで指定された半径で描かれる。座標の後にcircle [radius=半径]と記述する。

\\fillコマンドは座標の手前にオプションをつけることで色を指定できる。

\begin{tikzpicture}
\fill [red] (0,0) circle [radius=2];
\end{tikzpicture}
  • 実行結果

円

楕円

円の構文のオプションを拡張して楕円が描ける。オプションはそれぞれ、x radiusはx方向の半径、y radiusはy方向の半径、rotateは回転角度で、度数で指定する。角度を省略すると0度とみなされる。

\begin{tikzpicture}
\fill [red] (0,0) circle [x radius=1,y radius=2,rotate=30];
\end{tikzpicture}
  • 実行結果

楕円
楕円

円弧

円弧の構文は次のようなものである。

(座標) arc (開始角度:終了角度:半径)

ここで(座標)は中心の座標ではなく、円弧を開始する座標である。

\begin{tikzpicture}
\filldraw [fill=blue,draw=red] (0,2)  arc (90:30:2) -- cycle;
\end{tikzpicture}
  • 実行結果

円弧
円弧

扇形

円弧に中心点となる座標を適切につなげると扇形ができる。

\begin{tikzpicture}
\filldraw [fill=blue, draw=red] (0,2)  arc (90:30:2) -- (0,0) -- cycle;
\end{tikzpicture}
  • 実行結果

扇形
扇形

放物線

放物線の構文は次のようなものである。

(始点) parabola bend (頂点) (終点)

始点から頂点へ放物線を描き、頂点から終点へ放物線を描くため、うまく放物線をつなげるためには適切な座標を指定する必要がある。

\begin{tikzpicture}
\draw (-1,1) parabola bend (0,0) (1,1);
\end{tikzpicture}
  • 実行結果

放物線
放物線

サインカーブ

サインカーブは座標をそれぞれsin,cosでつなげる。それぞれ$$0\sim\pi/4$$分のカーブを描くため、うまくつなげるためにはそれぞれの構文を適切に使う必要がある。

\begin{tikzpicture}
\draw (0,0) sin (1,1) cos (2,0) sin (3,-1) cos (4,0);
\end{tikzpicture}
  • 実行結果

サインカーブ
サインカーブ

3次ベジェ曲線

ベジェ曲線の構文は次のようなものである。

(始点) .. controls (方向点1) and (方向点2) .. (終点)

方向点2を省略すると、 方向点1ではなく終点とみなされるので注意。

\begin{tikzpicture}
\draw (-2,0) .. controls (-1,-1) and (1,1) .. (2,0);
\end{tikzpicture}
  • 実行結果

3次ベジェ曲線
3次ベジェ曲線

まとめ

以上をまとめると、直線を描く構文は次のようになる。

\begin{tikzpicture}
\構文(draw又はfill) [オプション] (直交座標x,y又は極座標t:r) 構文;
\end{tikzpicture}
  • 任意の曲線はtoで、オプションはout,in
  • 円や楕円はcircleで、オプションはx radius,y radius,(rotate)
  • 円弧や扇形はarcで、引数は「開始角度」、「終了角度」、「半径」
  • 放物線はparabola bendで座標に注意
  • サインカーブsin, cosで座標に注意
  • ベジェ曲線controlsで、方向点の指定が1つだけだった場合の振る舞いに注意

参考リンク

tikz wiki