TikZ前回までに具体的に分かっている点の座標を指定することができるようになったので,今回はいよいよ図形を描画していきます。LaTeXのコンパイルにはdvipdfmxを使うものと仮定しますと,実際にTikZを試してみるときは,以下のようなコードのtikzpicture環境内にTikZのコマンドを記述してください。各コマンド行の最後にはセミコロン「;」をつけるのを忘れないように気をつけてください。(しばしば意味不明なエラーメッセージの原因となります。%ここにTikZのコマンドを記述します。\end{document}12345678\documentclass{jsarticle}\usepackage[dvipdfmx]{graphicx}\usepackage{tikz}\begin{document}\begin{tikzpicture}%ここにTikZのコマンドを記述します。\end{tikzpicture}\end{document}はじめにTikZでは図形を扱うときはいつも\pathコマンドが使えて次のように書けます。%セミコロンを忘れるべからず。%セミコロンを忘れるべからず。《パスオプション》には,線を描画したいときはdraw,塗りを描画したいときはfillなどと記述します。逆に,≪パスオプション≫を指定しなければデフォルトでは何も描画されません。領域は確保されるので,見えないパスが作られていると考えればよいかもしれません。《パスの定義》とは,例えば直線(線分)なら(0,0)--(1,2)のようなものです(それが今回のメインテーマです)。(実は《パスオプション》は《パスの定義》中の各座標の直後やコマンド行の最後に置いても同じ結果になります。コードの保守を考えた場合,少なくとも自分の書くコードの中では一貫した規則で記述するべきでしょう。)もちろん\pathコマンドでもいいんだけどいちいち\path,\path,......と書いていたらしまいにゲシュタルト崩壊してしまうので,親切にもこれらの構文にはシンタックスシュガーというか省略形が用意されています。今回使うのは次のものです。%\path[draw]と同じ。%\path[fill]と同じ。%\path[draw,fill]と同じ。%\path[draw]と同じ。%\path[fill]と同じ。%\path[draw,fill]と同じ。これらのコマンドにもオプションを指定できますが,今回は線の太さも色も塗りもデフォルトで行きます。《パスの定義》は一般的に次のように書きます。(《座標1》)《座標1と座標2の繋ぎ方》(《座標2》)《座標2と座標3の繋ぎ方》(《座標3》)......(《座標n》)1(《座標1》)《座標1と座標2の繋ぎ方》(《座標2》)《座標2と座標3の繋ぎ方》(《座標3》)......(《座標n》)ちょっと見にくいですが,《座標と座標の繋ぎ方》の具体例を見てからもう一度上の一般化を見れば分かるはずです。《座標と座標の繋ぎ方》について「繋ぎ方」とはつまり,二つの点を直線で結んだり,ベジェ曲線で結んだり,あるいはそれを対角の頂点とする長方形を描いたりすることです。使うのはやはり直線(線分)でしょうね。二点間の線分は次のように表します。(3,0);とすると,下の図の太い線の形になります。(3,0);としますと,が得られます。Illustratorと同じふるまいで,閉じていないパスに「塗り」をつけると,「パスの開始点と終了点を結んだ線分」と「パス」に囲まれた領域が塗りつぶされます。(オプションについてはまた別の場所で詳しく説明します。)閉じたパス先ほど「閉じていないパス」と言いました。(0,1);おお,いいんじゃないですか!でも,(0,1)付近を拡大してみると......ああ,これでは残念。クソーッ!ちゃんと閉じたパスにするにはいったいどうしたらいいんと言うんだ!?ごめんなさい茶番でした。閉じたパスにするには--cycle1--cycleと書きます。--とcycleの間にはスペースが入っても構いませんが,--とcycleはセットです。cycleだけでは使えません。cycle;となり,これを描画すると(0,1)で無事パスが閉じましたね。それでは極座標と閉じたパスを使って星マークを書いてみましょう。(《座標2》)と書きます。,《座標1》と座標《座標2》は長方形の対角の頂点の座標です。「右上と左下」の組でも,「右下と左上」の組でも構いません。(2,2);とすれば,の太線の形に描画されます。長方形と同様にしてグリッドが描けます。(《座標2》)グリッドとは,方眼紙みたいな格子状の線で,作図の補助線として使うことが多いです。次のようなサンプルです。(10,4);とすれば,となります。linesを指定します。(10,4);そうすると線の色と細さが補助線用になります。オプションでstep=***と指定すると,グリッドの間隔が変更できます。outを使う方法です。in=≪角度β≫](≪座標2≫)の形で書き,≪角度α≫は≪座標1≫から出る線の≪座標1≫における傾きをx軸の正の向きから反時計回りに計った角度(単位:°)で表し,≪角度β≫は≪座標2≫に入る線の≪座標2≫における傾きをx軸の正の向きから反時計回りに計った角度で表したものです。(3,1);と書くと,の太い線の部分の形が得られます。オプションにrelativeを指定することができます。x軸の正の向きからではなく,≪座標1≫から≪座標2≫に向かうベクトルを基準として,そのベクトルから反時計回りに計った角度で表すことができます。先ほどの例にオプションrelativeをつけたらどうなるか見てみましょう。(3,1);とすると,上の図の太い線の部分の形が得られます。直線(--)とtoパス(to[out=*,in=*])を組み合わせるだけで,結構自由に作図できるようになります。%ここがdrawコマンドの終わりだからセミコロンとすれば,上の図の線が得られます。ベジェ曲線toパスを使った曲線は簡単に書けますが,あまり自由な曲線が描けません。そこでベジェ曲線を使います。IllustratorやオープンソースのInkscapeのようなベクター画像ソフトで広く採用されていて,慣れるまではなかなかうまく書けませんが,慣れたら目をつむっていても思った通りの曲線が描けるようになります多分。ベジェ曲線についての説明は,TTEditやOTEditの販売をする武蔵システムのサイトがわかりよいです。ベジェ曲線は次の形式で表します。(≪座標2≫)これによって表される曲線は,≪座標1≫と≪座標2≫を結ぶ線で,≪座標1≫付近で≪座標1≫と≪制御点1≫を結ぶ直線に接し,≪座標2≫付近で≪座標2≫と≪制御点2≫を結ぶ直線に接する。数学的意味を無視して直観的な話をすれば,≪制御点1≫が≪座標1≫から遠ければ遠いほど,曲線の≪座標1≫側は≪座標1≫と≪制御点1≫を結ぶ直線に引き寄せられ,≪制御点2≫が≪座標2≫から遠ければ遠いほど,曲線の≪座標2≫側は≪座標2≫と≪制御点2≫を結ぶ直線に引き寄せられる感じになる。以下の図では黒丸が≪座標n≫に当たり,白丸が≪制御点n≫を示す。サンプルを示すのでいろいろ値を変えて実験しながら慣れていってください。circle[radius=0.5mm];\end{scope}ベジェ曲線と相対座標ベジェ曲線で線を描くときは,前回説明した相対座標で制御点を表すと便利かもしれません。(≪座標2≫)この時,≪座標1≫から見た≪相対座標1≫が≪制御点1≫になり,≪座標2≫から見た≪相対座標2≫が≪制御点2≫になります。極座標の相対座標を用いるのが分かりやすく,次のような感じになります。+(120:2cm);相対座標で制御点を指定すると,≪座標1≫≪座標2≫を移動させても曲線の形が変わらないので,同じ図形を複数回ずらして使う場合などに便利です。(scope環境でくくってxshift,yshiftしてもいいですが)ベジェ曲線の練習ではしばしばハートマークを書かせる本が多いので,ここでもハートマークを書いてみましょう。(≪開始角α≫:≪終了角β≫:≪半径r≫)です。上のほうが読みやすいかもしれませんが,慣れたら下のほうが便利だと思います。これによって表される円弧は,半径がrの円の,角度αからβに対応する部分(ただし,α,βは単位°)で,開始角αに対応する点が≪座標P≫に一致します。,≪現在の座標≫は≪終了角β≫に対応する点に移ります。++(-4,0);とすれば,の太線の部分の図形が得られます。αなら,円弧が時計回りに描かれるということは明らかでしょう。楕円弧,つまり楕円の一部分も同様に表すことができます。≪y軸半径ry≫)とします。楕円の上の角α,βに対応する点は,≪x軸半径rx≫または≪y軸半径ry≫を拡大・縮小して正円にし,そこで角α,βに対応する点を取り,それ再び元の楕円に戻すと得られる点,になります。言葉で説明するのは難しいので次の例を見て理解してください。yscaleオプションは,それぞれx軸方向,y軸方向に図形を拡大・縮小します。放物線はオプションの指定などがいろいろ複雑なので,順番に見ていきましょう。オプションも何もつけない一番簡単な形。(≪座標2≫)≪座標1≫を頂点とし,≪座標2≫を通る,上または下に凸な放物線の,≪座標1≫から≪座標2≫の間の部分です。形で表せるので,頂点ともう一点を与えれば,一意に定まります。endオプションがあります。endを指定すると≪座標2≫が放物線の頂点になります。end](3,2);今までは放物線を軸で切って半分になったものでしたが,次に完全な放物線を描きましょう。(≪座標3≫)これが表すのは≪座標2≫を頂点とし,≪座標1≫と≪座標3≫を通る放物線です。(1,-1);変なことになります。逆にうまくとれば,≪座標1≫と≪座標3≫のy座標は必ずしも同じである必要はありません。(2,4);頂点の座標を計算せずに放物線の高さを指定することもできます。height=≪高さh≫](≪座標2≫)≪座標1≫と≪座標2≫を通り,高さが≪高さh≫の放物線です。≪座標1≫と≪座標2≫のx座標の平均に頂点がきます。基本的には,≪座標1≫と≪座標2≫のy座標が同じになるようにしてください。(2,0);≪高さh≫と言いましたが,≪高さh≫はベクトル量(?)です。プラスの値を入れると放物線が上に凸に,マイナスの値を入れると下に凸になります。%下に凸な放物線なお,≪座標1≫と≪座標2≫のy座標が異なる場合,≪座標1≫と≪座標2≫のy座標の平均から≪高さh≫分上に行ったとところに頂点が来ます。(3,2);サインカーブサインカーブは放物線と見た目も使い方も似ています。cos(≪座標4≫)y=sinΘ型のグラフとy=cosΘ型のグラフの,0≦Θ≦π/2の範囲をそれぞれ,≪座標1≫と≪座標2≫,≪座標3≫と≪座標4≫を通るように描きます。≪座標2≫のy座標が≪座標1≫y座標より小さい場合は,y=-sinΘの形に,≪座標4≫のy座標が≪座標3≫y座標より小さい場合は,y=-cosΘの形になります。(4,0);連続したサインカーブを作りたいときは,sinとcosを交互に使えばよいでしょう。(4,1);2点をx軸,y軸に平行な線で結ぶえ?なにを言っているかわからない?俺も使い道があまり見いだせないんだが,書いておかないと知らないみたいに思われるといけないから,まず書き方。(≪座標4≫)上は,≪座標1≫の点から出たx軸に平行な線と,≪座標2≫の点から出たy軸に平行な線の作る,途中で90°折れ曲がる線。下は,≪座標3≫の点から出たy軸に平行な線と,≪座標4≫の点から出たx軸に平行な線の作る,途中で90°折れ曲がる線。例を見たらわかると思います。(3,0);なお,「|」は「パーティカルバー」とか「パイプ」とか「縦線」とか呼ばれる記号で,[Shift]キーを押しながらバックスペースキーの隣の[¥]キー(ただし一般的な日本語106/109キーボードの場合)を押すと入力できます。円と楕円は≪座標と座標のつなぎ方≫ではないですがここにまとめておきます。円と楕円は次のように記述します。≪y軸半径ry≫)丸括弧を使うと座標と紛らわしいので,オプションとして半径を指定したほうがいいかもしれません。yradius=3cm];circleとellipseはrectangleと違って≪現在の座標≫を変更しません。円に続いて線を引くと次のようになります。--(2,0);次回は,内分点や二つのパスの交点をはじめとした応用的な点の指定方法の説明をする予定です。コメントをキャンセルメールアドレスが公開されることはありません。コメントデータの処理方法の詳細はこちらをご覧ください。Smartline.。