LaTeXで図を直接描けるTikZの使い方4|座標の定義と計算

TikZ
TikZ

例えば,座標上の点$(1,2)$を何度も用いるなら,$(1,2)$を何度も書くのは面倒です.

TikZでは点$(1,2)$を(A)と定義することができ,(A)と書けばこれを全て点$(1,2)$として処理させることができます.

こうすると,$(1,2)$を$(3,2)$に書き換えたいとき,(A)の定義を$(3,2)$に書き換えるだけで全ての$(1,2)$が$(3,2)$に置き換わりとても便利です.

このように点の定義は適切に利用すれば,TikZの記述の編集は非常に簡単になります.

また,

  • ライブラリ”calc”を用いることで,座標の計算ができ,
  • ライブラリ”intersections”を用いることで,曲線の交点の座標を定義できます.

なお,本稿では以下のように3つのライブラリ”intersections”, “calc”, “arrows.meta”を用います.

なお,ライブラリについては最初の記事で説明しています.

$\LaTeX$の参考文献

以下は$\LaTeX$に関するオススメの参考書です.

LaTeX2e美文書作成入門 改訂第9版

[奥村晴彦 著/技術評論社]

$\TeX$はDonald E. Knuth氏が開発した数式処理に特化した組版処理システム(ざっくり言えば文書ソフト)です.

現在ではほとんどの数学の論文雑誌では$\LaTeX$により書かれた論文が標準となっています.

そのため,ほとんどの数学の研究者が論文作成の際に$\LaTeX$を使っていると言ってよいでしょう.

著者の奥村氏は日本における$\TeX$の第一人者で,本書は$\LaTeX$初心者から中級者まで幅広い層に役立つ$\LaTeX$の教科書です.

数式処理だけでなく$\LaTeX$を扱う際に便利な多くの機能の解説が載っており,しっかり理解して$\LaTeX$を習得することができます.

本書にはDVD-ROMが付属しておりインストール用がすぐにできるので,$\LaTeX$を始める人が苦戦しがちな環境整備がすぐにできます.

座標上の点の定義

ここでは,座標上の点の定義の仕方を説明します.

座標上の点の定義

例えば,

と記述すれば,

Rendered by QuickLaTeX.com

と表示されます.つまり,

と記述すれば,座標上の点$(a,b)$を(X)と定義することができるということですね.

一行で点の定義と文字の入力をする

上のように点の定義と文字を別々に

としても問題ありませんが,少々記述が嵩張ってしまいます.

と点の定義と文字の入力を一行で記述することもでき,上の図と同じものが表示されます.

つまり,

と記述すれば,座標上の点$(a,b)$を(X)で定義し,文字Xを表示させることができます.

なお, (文字の位置) は右 right,左 left,上 above,下 below の他に

とすると,Aから見て偏角$200^\circ$の位置に文字Aを表示することができます.

曲線の交点の定義

TikZでは,ライブラリ”intersections”を用いることで,交点の座標を定義することができます.

例えば,

と記述すれば,

Rendered by QuickLaTeX.com

と表示されます.つまり,

と記述すれば,$n$個目の交点が (intersection-n) で定義されます.

交点の名前を自分で付けたい場合には,

のように by={(交点1の名前),(交点2の名前),……}と記述すれば,交点の名前を順に名付けることができます.

繰り返し処理

上の三角形で頂点A, B, Cを黒丸で塗りつぶしたいとき,

とすることもできますが,これをまとめて

と繰り返し処理で実行することもできます.例えば,

と記述すると,

Rendered by QuickLaTeX.com

と表示されます.すなわち,

と記述すれば, (\Pに関する命令)\P にX, Y, Zを代入した処理が行われます.この \P\t などとしても構いません.

なお,規則的な代入をするときには,以下のように省略して記述することもできます.

  • \foreach \P  in {A,B,...,Z}\P にAからZまでのアルファベットを代入した処理が行われる.
  • \foreach \t  in {1,2,...,10}\t に1から10までの整数を代入した処理が行われる.
  • \foreach \t  in {10,20,...,100}\t に10から100までの整数を10毎に代入した処理が行われる.

座標の計算

TikZでは,ライブラリ”calc”を用いることで,座標計算を行うことができます.

ただし,以下では$\mrm{A}(a,b)$, $\mrm{B}(c,d)$, $\mrm{P}(x,y)$と定義されているとします.つまり,

とします.また,$k,t,a$を実数とします.

このとき,以下のコマンドにより座標の計算ができます.

TikZの座標計算
計算結果 記述
点$(a+b,c+d)$ (\$(A)+(B)\$)
点$(ka,kb)$ (\$k*(A)\$)
線分ABの$t:(1-t)$内分点 ($0<t<1$) (\$(A)!t!(B)\$)
線分ABの$-t:(1-t)$外分点 ($t<0$) (\$(A)!t!(B)\$)
線分ABの$t:(t-1)$外分点 ($t>1$) (\$(A)!t!(B)\$)
Pから直線ABに下ろした垂線の足 (\$(A)!(P)!(B)\$)
Aとの距離$t[\mrm{cm}]$のBへ向かう点 (\$(A)! cm!(B)\$)
線分ABの$t:(1-t)$内分点を,A中心で$a^\circ$回転させた点 (\$(A)!t!a:(B)\$)

なお,内分点,外分点はいずれも (\$(A)!t!(B)\$)でよく,

  • $t<0$ならA側の外分点
  • $0<t<1$なら内分点
  • $1<t$ならB側の外分点

となるだけで本質的には同じです.

例1

例えば,

と記述すると,

Rendered by QuickLaTeX.com

と表示されます.

例2

例えば,

と記述すると,

Rendered by QuickLaTeX.com

と表示されます.

コメント