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

例えば,座標上の点$(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を用います.

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

座標上の点の定義

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

座標上の点の定義

例えば,

と記述すれば,

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)!t 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

と表示されます.

参考文献

以下はLaTeXに関しての参考文献です.

LaTeX2e美文書作成入門 改訂第7版 (奥村晴彦 著/技術評論社)

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

非常に詳しく解説が載っており,しっかり理解して習得することができます.

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

ただし,本稿の内容のTikZについての記述はないので注意してください.

最後までありがとうございました!

参考になった方は是非シェアをお願いします!

フォローする

以下の関連記事もいかがですか?

SPONSORED LINK
関連記事

記事一覧はこちらからどうぞ!

コメント

  1. シバタショウイチ より:

    \dfrac{}{}

    amsmathパッケージが必要

    \dint
    何のパッケージかわからなかった
    \displaystyle{\int_0^1f(x)\,dx …}

    \bra{}
    も何のパッケージなのかな?
    \left(\frac{k}{n}\right)

    • yama-taku より:

      ご指摘をありがとうございます.

      \dintと\braについては,私の独自パッケージのマクロでそのまま用いておりました.
      ご推察のように,それぞれ
      ・\displaystyle\int
      ・\left( #1 \right)
      です.

      一連の記事にたくさんのご指摘を頂き,より良い記事になりました.
      ありがとうございます.

記事一覧は

こちら

Twitterを

フォロー

大学院入試

解答例

大学受験

解説ブログ