&size(24){''\Drawline''}; 折れ線を描画します。 #contents #br *定義されているスタイルファイル [#nfc48d22] emathPh.sty *書式 [#h5cd66f7] \Drawline<#1>#2 -#1: key=val 形式をコンマ区切りで並べます。 -#2: 点列 #2 に与えられた点列を線分で結んでいきます。 #1 における有効な key は :[[sensyu>#udf54ba1]]| 線種を変更します。 :[[yazirusi>#e7b2ea5d]]| 折れ線の始点・終点に矢印を附加します。 :[[arrowheadsize>#x30479ea]]| 矢印のサイズを変更します。 :[[allinethickness>#s6a45f2b]]| 線分の太さを変更します。 :[[iro>#k3c39573]]| 折れ線に色をつけます。 :[[Oval>#z1bc159a]]| 折れ線の角を丸くします。 :[[oval>#z1bc159a]]| 折れ線の角を丸くします。 以下,emathPs.sty で定義されている pszahyou(*)環境特有のオプションです。 :[[arrowsize>#q33aba80]]| pszahyou(*)環境における鏃のサイズを変更します。 :[[linewidth>#f00ebe8c]]| pszahyou(*)環境における線の太さを変更します。 :[[dash>#n13678b7]]| pszahyou(*)環境における線種を変更します。 :[[linejoin>#x407a9bc]]| コーナー補正 *例 [#jef12eca] **基本例 [#c0b6c422] 点列を線分で結んで折れ線を描画します。 #ref(Drawline01.png) **線種変更 <sensyu=..> [#udf54ba1] 線分の線種を変更します。 まずは,<sensyu=\dottedline.. で,点線を指定します。 #ref(sensyu01.png) <sensyu=\dashline.. は,破線です。 #ref(sensyu02.png) <sensyu=\hasen.. も使えますが, \Hasen コマンドを用いる方が普通でしょう。 #ref(sensyu03.png) <sensyu=\chainline.. は鎖線です。 #ref(sensyu04.png) **矢印附加 <yazirusi=.> [#e7b2ea5d] 折れ線の始点・終点に矢印を附加します。 <yazirusi=a> とすると,終点に矢印がつきます。 #ref(yazirusi01.png) <yazirusi=r> とすると,始点に矢印がつきます。 #ref(yazirusi02.png) <yazirusi=b> の場合は,始点・終点両方に矢印がつきます。 #ref(yazirusi03.png) **矢印サイズ変更 <arrowheadsize=.> [#x30479ea] <yazirusi=.> オプションで矢印をつけた際,その矢印のサイズを変更します。 右辺値は,デフォルトを 1 とする相対値(無名数)です。 #ref(arrowheadsize01.png) :(注)|<arrowheadsize=..>オプションは,pszahyou(*)環境に対しては無効です。~ 代えて <arrowsize=..>オプションを用います。 **線幅変更 <allinethickness=..> [#s6a45f2b] 線分の太さを変更します。 #ref(allinethickness01.png) :(注)|<allinethickness=..>オプションは,pszahyou(*)環境に対しては無効です。~ 代えて <linewidth=..>オプションを用います。 **カラー <iro=..> [#k3c39573] 折れ線に色をつけます。 #ref(iro01.png) **丸コーナー<oval=..> [#z1bc159a] 折れ線の角を丸くします。 折れ線の角を円弧にしますが,その半径を oval=.. の右辺値に指定します。 右辺値は単位を伴う長さですが,無名数の場合は \unitlength が単位であるとみなされます。 Oval=.. も有効で,oval=.. と同義です。 #ref(oval01.png) 線分と円弧が接続されますが,<sensyu=..>オプションは線分に対してのみ働きます。 下の例で,線分は破線になりますが,円弧は実線のままです。 #ref(oval02.png) 円弧も破線とするには,pszahyou環境で<dash=..>オプションを用います。 #ref(oval03.png) **線幅変更(pszahyou(*)環境) <linewidth=..> [#f00ebe8c] emathPs.sty で定義されている PostScript による描画を行う pszahyou環境では,デフォルトの線の太さが 1pt と太めになっています。 #ref(linewidth00.png) この太さを変更するオプションが <linewidth=..> です。 右辺値(無名数)を 10で割った数値に,単位 pt を附加したものが線の太さとなります。 tpic-specials で描画する zahyou環境のデフォルトと揃えるには #ref(linewidth01.png) **線種変更(pszahyou(*)環境) <dash=..> [#n13678b7] 破線を描画するには,<dash=..> オプションを用います。 右辺には, 描画部分の長さ,描画しない部分の長さ の繰り返しとなる偶数個の数値(無名数)を与えます。 #ref(dash01.png) #ref(dash03.png) 右辺値の冒頭に [..] とすることで, 開始位置のオフセットを指定する機能があります。 下の例の場合,オフセット [.05] が指定されましたから 初めの(点Aのところ)描画部分の長さが 0.15-0.05=0.10 と短くなります。 #ref(dash02.png) 次の例は,Oval=.. との併用です。 #ref(dash04.png) さらに yazirusi=. と併用してみます。 鏃のサイズを変更するには,さらに arrowsize=.. と併用することとなります。 #ref(dash05.png) **鏃のサイズ変更(pszahyou環境)<arrowsize=..> [#q33aba80] 折れ線に矢印をつけると,鏃が貧弱に見えます。 これは,デフォルトでは矢線の幹の太さを 0.3pt として鏃サイズが設定されているのに対し, ここでは幹(折れ線)は 1pt で描画されているため,バランスが崩れていることによります。 #ref(arrowsize1.png) 折れ線の太さを 0.3pt にするには,上で述べた <linewidth=3> オプションを用います。 #ref(arrowsize2.png) 逆に鏃サイズを大きくするには <arrowsize=..> オプション を用います。右辺値は,\setarrowsize コマンド \setarrowsize<#1>#2#3#4 の引数をそのまま記述します。 ただし,#2 -- 幹の太さ -- は無効です。 この場合,幹は折れ線でその太さは <linewidth=..>オプションで変更します。 このオプションは局所的で,当該 \Drawline についてのみ有効です。 広範囲に鏃サイズを変更するには,\setarrowsizeコマンドを用います。 #ref(arrowsize3.png) **接続修正(pszahyou(*)環境) <linejoin=..> [#x407a9bc] 折れ線の折れ点の状態は 線分を重ねただけではV字型のクサビが出来てしまいます。 PostScript には,これを修正する方法が3通り用意されています。 それを切り替えるオプションが <linejoin=..> です。右辺値は 0 : マイター接続(デフォルト) 1 : ラウンド接続 2 : ベベル接続 のいずれかです。 まずは,zahyou環境の状態からみていきます。 \Drawline は,折れ線を描画するとはいえ, 個々の線分を重ねて配置するだけです。 線分が太くなると,V字型の切り欠きが目立ってきます。 なお,この項は図を拡大したくなりますので &ref(linejoin00.pdf,,PDFファイル);を用意しました。 #ref(linejoin01.png) pszahyou環境でも,個々の線分を描画したものを連ねた場合は,上と同様です。 #ref(linejoin02.png) しかし,\Drawlineの引数に点列を与えて折れ線を描画させると, 折れ点で「マイター接続」と称される補正が行われます。 すなわち,線分AB, BCの外側のエッジを延長し,交わらせます。 上の図と下の図では,`B'の位置は同じです。 下の図では,折れ線が`B'の位置近くまで延長されていることがお分かりでしょうか。 #ref(linejoin03.png) マイター接続では,本来の点B--赤線の交点--と折れ線の頂点がだいぶずれてしまいます。 折れ点の接続表現法には「マイター接続」以外も用意されています。 その一つが「ラウンド接続」です。 線幅と等しい直径を持つ円弧を折れ点を中心として描画します。 #ref(linejoin04.png) もう一つが「ベベル接続」と呼ばれるもので, 単に線分を重ねて出来るV字型の切込みを塗りつぶします。 #ref(linejoin05.png) *注意事項 [#t05a6ad2] + その1 *関連事項 [#s76d18a9] +[[\Takakkei>Takakkei]] +[[\Hasen>Hasen]] +[[\ArrowLine>ArrowLine]] RIGHT:&counter;