&size(24){''\iiiDrawline''}; 座標空間に折れ線を描画します。 #contents #br *定義されているスタイルファイル [#i93e9155] emathPk.sty *書式 [#hb16343f] \iiiDrawline<#1>#2 #2 に与えられた点列を線分で結んでいきます。 -#1: key=val 形式のコンマ区切りで並べます。 -#2: 点列 -#1 に有効なkey は, :[[arrowheadsize>#arrowheadsize]]|矢印のサイズを変更します。 :dashLG|破線の形状を指定します。 :hasenLG|破線の形状を指定します。 :[[idou>#idou]]|平行移動をします。 :[[iro>#iro]]|折れ線に色をつけます。 :[[linethickness>#linethickness]]|線分の太さを変更します。 :[[Oval>#oval]]|oval と同義のキーです。 :[[oval>#oval]]|折れ線の角を丸くします。 :[[sensyu>#sensyu]]|線種を変更します。 :[[yazirusi>#yazirusi]]|折れ線の始点・終点に矢印を付加します。 以下,emathPs.sty で定義される [[psZahyou(*)環境>pszahyou環境]]特有のオプションです。 :[[arrowsize>#arrowsize]]|psZahyou(*) 環境における鏃のサイズを変更します。 :[[dash>#dash]]|psZahyou(*) 環境における線種を変更します。 :[[kuromaru>#kuromaru]]|全ての頂点に黒丸をつけます。右辺値に [[\Kuromaru>Kuromaru]] コマンドのオプションを記述することも出来ます。 :[[hasenLG>#hasenLG]]|psZahyou(*) 環境における線種を変更します。 :[[linecap>#linecap]]|開いた端点処理 :[[linejoin>#lineloin]]|コーナー補正 :[[vmark>#vmark]]|折れ点に配置する記号を指定します。 *例 [#c034e410] **基本例 [#t569613f] 点列を線分で結んで折れ線を描画します。 #ref(iiiDrawline01.png) **線種変更 <sensyu=..> [#sensyu] 線分の線種を変更します。 まずは,<sensyu=\emdottedline..> で,点線を指定します。 これには \usepackage{multido} が必要です。 #ref(sensyu01.png) -[[\iiiemDottedline>iiiemDottedline]]{\A\B\C} も同義のキーです。 <sensyu=\dashline..> は,破線です。 #ref(sensyu02.png) -[[\iiiDashline>iiiDashline]][40]{.1}{\A\B\C} も同義のキーです。 <sensyu=\hasen..> も使えます。 #ref(sensyu03.png) -[[\iiiHasen>iiiHasen]]{\A\B\C} も同義のキーです。 <sensyu=\chainline..> は鎖線です。 #ref(sensyu04.png) **矢印附加 <yazirusi=..> [#yazirusi] 折れ線の始点・終点に矢印を附加します。 <yazirusi=a> とすると,終点に矢印がつきます。 #ref(yazirusi01.png) <yazirusi=r> とすると,始点に矢印がつきます。 #ref(yazirusi02.png) <yazirusi=b> の場合は,始点・終点両方に矢印がつきます。 #ref(yazirusi03.png) **矢印サイズ変更 <arrowheadsize=.> [#arrowheadsize] 矢印のサイズを変更するには,zahyou(*)環境では <yazirusi=.> オプションでサイズを指定します。 右辺値は,デフォルトを 1 とする相対値(無名数)です。 #ref(arrowheadsize01.png) pszahyou(*)環境では,<arrowsize=..>オプションを用います。 **線幅変更(1) <linethickness=..> オプション [#linethickness] 線分の太さを変更するには, linethickness=.. オプションを用います。右辺値は,単位を伴う長さです。 デフォルトは Zahyou(*)環境では linethickness=0.3pt psZahyou(*)環境では linethickness=1pt に相当します。 #ref(linethickness01.png) -allinethickness, linewidth も同義のキーとして使用可能です。 -線を太くすると,折れ点で「楔形の欠け」が目立つ,という場合は~ psZahyou環境を用います。 #ref(linethickness02.png) **線幅変更(2) \linethickness コマンド [#z9500823] <linethickness=..> オプションによる線幅変更は,当該 \iiiDrawline にのみ有効です。 #ref(linethickness11.png) 広範囲に変更するには,\linethickness コマンドを用います。 引数は,単位を伴った寸法です。 #ref(linethickness12.png) **カラー <iro=..> [#iro] 折れ線に色をつけます。 #ref(iro01.png) -tpic による色づけは,dviware に依存します。~ dvips, dviout, dvipdfm では有効ですが,~ dvipdfmx は版によって動作が異なります。~ dvipdfmx-20081108(cvs) は対応していますが,それより前の版では色がつかない場合があります。~ カラーを扱うには psZahyou環境がお勧めです。 **丸コーナー<oval=..> [#oval] 折れ線の角を丸くします。 折れ線の角を円弧にしますが,その半径を oval=.. の右辺値に指定します。 右辺値は単位を伴う長さですが,無名数の場合は \unitlength が単位であるとみなされます。 Oval=.. も有効で,oval=.. と同義です。 #ref(oval01.png) 線分と円弧が接続されますが,<sensyu=..>オプションは線分に対してのみ働きます。 下の例で,線分は破線になりますが,円弧は実線のままです。 #ref(oval02.png) 円弧も破線とするには,psZahyou環境で<dash=..>オプションを用います。 #ref(oval03.png) **平行移動 <idou=..> [#idou01] 折れ線を平行移動するオプションが <idou=..> です。 右辺値は,ベクトル成分で,各成分は 無名数,単位つき数値 のいずれでも良く,無名数の場合は単位が \unitlength であると解釈されます。 (xscale, yscale の影響を受けます。) #ref(idou01.png) #br **--- 以下,psZahyou環境特有の話題です。--- [#d62ceaee] **線種変更(psZahyou(*)環境) <dash=..> [#dash] 破線を描画するには,<dash=..> オプションを用います。 右辺には, 描画部分の長さ,描画しない部分の長さ の繰り返しとなる偶数個の数値(無名数)を与えます。 詳しくは,\setdash コマンドについてのページをご参照ください。 #ref(dash01.png) #ref(dash02.png) 右辺値の冒頭に [..] とすることで, 開始位置のオフセットを指定する機能があります。 下の例の場合,オフセット [.05] が指定されましたから 初めの(点Aのところ)描画部分の長さが 0.15-0.05=0.10 と短くなります。 #ref(dash03.png) 次の例は,oval=.. との併用です。 #ref(dash04.png) さらに yazirusi=. と併用してみます。 鏃のサイズを変更するには,さらに arrowsize=.. と併用することとなります。 #ref(dash05.png) **線種変更(psZahyou(*)環境) <hasenLG=..> [#hasenLG] 破線で描画するもう一つのオプション <hasenLG=..> です。 下右図,2本の線分が破線で描かれていますが, 上が <dash=..> 下が <hasenLG=..> オプションによるもので,右辺値は同一です。 dash による指定は,指定通りの長さで「描画,空白」が繰り返されますが, hasenLG による指定は,両端が「描画」で始まり,終わるように長さが調整されます。 #ref(hasenLG11.png) <hasenLG=..>オプションによる描画は,\Hasen コマンドと同様ですが, 折れ線に対しては状況が変わってきます。 下の3つの図で, 1番上は,<dash=..> によるもので,折れ点 B が不明確です。 2番目は,\Hasen コマンドによるもので,折れ点 B において,V字上の欠けが見られます。 3番目は,<hasenLG=..> によるもので,折れ点補正がかけられています。 #ref(hasenLG12.png) #ref(hasenLG13.png) #ref(hasenLG14.png) -折れ点補正に関しては,[[linejoin=..オプション>#linejoin]]をご覧ください。 -<hasenLG=..>オプションは,<oval=..>, <yazirusi=..> との併用はできません。 **全ての頂点にマーク [#ac39c8f8] 全ての頂点にマークをつけます。 ***<kuromaru> オプション [#kuromaru] 全ての頂点に黒丸をつけるオプションが <kuromaru> です。 #ref(kuromaru01.png) -黒丸のサイズを変えるには,[[\KuromaruHankei>KuromaruHankei]] コマンドを発行しておきます。 #ref(kuromaru02.png) ***<vmark=..> オプション [#vmark] 任意の記号を配置するには,<vmark=..> オプションを用います。 #ref(vmark01.png) **鏃のサイズ変更(psZahyou環境)<arrowsize=..> [#arrowsize] 折れ線に矢印をつけると,鏃が貧弱に見えます。 これは,デフォルトでは矢線の幹の太さを 0.3pt として鏃サイズが設定されているのに対し, ここでは幹(折れ線)は 1pt で描画されているため,バランスが崩れていることによります。 #ref(arrowsize01.png) 折れ線の太さを 0.3pt にするには,上で述べた <linewidth=3> オプションを用います。 #ref(arrowsize02.png) 逆に鏃サイズを大きくするには <arrowsize=..> オプション を用います。右辺値は,\setarrowsize コマンド \setarrowsize<#1>#2#3#4 の引数をそのまま記述します。 ただし,#2 -- 幹の太さ -- は無効です。 この場合,幹は折れ線でその太さは <linewidth=..>オプションで変更します。 このオプションは局所的で,当該 \iiiDrawline についてのみ有効です。 広範囲に鏃サイズを変更するには,\setarrowsizeコマンドを用います。 #ref(arrowsize03.png) **接続修正(psZahyou(*)環境) <linejoin=..> [#linejoin] 折れ線の折れ点の状態は 線分を重ねただけではV字型のクサビが出来てしまいます。 PostScript には,これを修正する方法が3通り用意されています。 それを切り替えるオプションが <linejoin=..> です。右辺値は 0 : マイター接続(デフォルト) 1 : ラウンド接続 2 : ベベル接続 のいずれかです。 まずは,Zahyou環境の状態からみていきます。 \iiiDrawline は,折れ線を描画するとはいえ, 個々の線分を重ねて配置するだけです。 線分が太くなると,V字型の切り欠きが目立ってきます。 //なお,この項は図を拡大したくなりますので //&ref(linejoin00.pdf,,PDFファイル);を用意しました。 #ref(linejoin01.png) psZahyou環境でも,個々の線分を描画したものを連ねた場合は,上と同様です。 #ref(linejoin02.png) しかし,\iiiDrawlineの引数に点列を与えて折れ線を描画させると, 折れ点で「マイター接続」と称される補正が行われます。 すなわち,線分AB, BCの外側のエッジを延長し,交わらせます。 上の図と下の図では,`B'の位置は同じです。 下の図では,折れ線が`B'の位置近くまで延長されていることがお分かりでしょうか。 #ref(linejoin03.png) マイター接続では,本来の点B と折れ線の頂点がだいぶずれてしまいます。 折れ点の接続表現法には「マイター接続」以外も用意されています。 その一つが「ラウンド接続」です。 線幅と等しい直径を持つ円弧を折れ点を中心として描画します。 #ref(linejoin04.png) もう一つが「ベベル接続」と呼ばれるもので, 単に線分を重ねて出来るV字型の切込みを塗りつぶします。 #ref(linejoin05.png) - <linejoin=..>オプションは,当該 \iiiDrawline に対してのみ有効です。~ 広範囲に有効とするには [[\setlinejoin>setlinejoin]] コマンドを用います。 **開いた端点の処理 <linecap=..> [#linecap] 線分を接続する場合,その点の処理法は linejoin の値によることは上で述べた通りですが, 開いた端点については,linecap の値で処理を指定することが出来ます。 右辺値は 0(default), 1, 2 のいずれかです。 0 断ち切り型 (butt cap) : パスの端点において四角形に線を打ち切る。パスの端点から突出する部分はない。 1 丸型 (round cap) : 直径が線幅に等しい半円弧が端点の周囲に描かれ,内部が塗りつぶされる。 2 角型 (projecting square cap) : パスの端点から線幅の半分の距離を越えるまで線を引き続け,四角形に線を打ち切る。 #ref(linecap00.png) #ref(linecap01.png) #ref(linecap02.png) - <linecap=..>オプションは,当該 \iiiDrawline に対してのみ有効です。~ 広範囲に有効とするには [[\setlinecap>setlinecap]] コマンドを用います。 *関連事項 [#dd091464] -[[直線の描画]] --[[\Drawline>Drawline]] RIGHT:&counter;