&size(24){''\Takakkei''}; 多角形を描画します。 #contents #br *定義されているスタイルファイル [#nfc48d22] emathPh.sty *書式 [#h5cd66f7] \Takakkei<#1>#2 -#1: key=val 形式をコンマ区切りで並べます。 -#2: 点列 #2 に与えられた点列を頂点とする多角形を描画します。 #1 における有効な key は :[[boutyou>#boutyou]]| 多角形を膨張(縮小)させます。 :[[sensyu>#sensyu]]| 線種を変更します。 :[[linethickness>#linethickness]]| 線分の太さを変更します。 :[[iro>#iro]]| 辺に色をつけます。 :[[oval>#z1bc159a]]| 頂点のコーナーを丸くします。 以下,emathPs.sty で定義されている pszahyou(*)環境特有のオプションです。 :[[dash>#n13678b7]]| pszahyou(*)環境における線種を変更します。 :[[hasenLG>#hasenLG]]| pszahyou(*)環境における線種を変更します。 :[[linejoin>#x407a9bc]]| コーナー補正 :[[nuriiro>#nuriiro]]| 内部を塗りつぶす色を指定します。 *例 [#jef12eca] **基本例 [#c0b6c422] 点列を結ぶ多角形を描画します。 #ref(Takakkei01.png) ---\Drawline{\A\B\C}は,折れ線 ABC を描画するだけですが~ \Takakkei{\A\B\C}は,始点(\A)と終点(\C)を結ぶ線分を付加して閉多角形を描画します。 ---\Drawline{\A\B\C\A}とすれば,多角形が描画されはしますが,~ \Takakkei{\A\B\C}とは,頂点Aのところが異なります。 #ref(Takakkei00.png) **線種変更 <sensyu=..> [#sensyu] 線種を変更するには,<sensyu=..> オプションを使用します。 #ref(sensyu01.png) **線幅変更 <linethickness=..> [#linethickness] 辺の太さを変更します。 #ref(linethickness01.png) 頂点におけるつながり具合が問題ですね。楔型の欠けができます。 pszahyou環境で PostScript を用いると,綺麗になります。 #ref(linethickness02.png) **多角形の拡大・縮小 <boutyou=..> [#boutyou] 多角形を辺に垂直方向に膨張させるオプションが boutyou=... です。 #ref(boutyou01.png) -ただし,perl との連携機能を必要としますから,emathPl を読み込んでおかねばなりません。 -右辺値に負の寸法を指定すれば,縮小します。 **カラー <iro=..> [#iro] 辺に色をつけます。 #ref(iro01.png) **丸コーナー<oval=..> [#z1bc159a] 頂点の角を丸くします。 頂点の角を円弧にしますが,その半径を oval=.. の右辺値に指定します。 右辺値は単位を伴う長さですが,無名数の場合は \unitlength が単位であるとみなされます。 #ref(oval01.png) **多角形の面積 [#MensekiP] 面積(近似値)を取得するコマンドが \MensekiP です。 ただし,perl との連携機能を必要としますから,emathPl を読み込んでおかねばなりません。 #ref(MensekiP01.png) *--- 以下,pszahyou環境特有の話題です。--- [#s7949c2f] **線種変更(pszahyou(*)環境) <dash=..> [#n13678b7] 辺を破線で描画するには,<dash=..> オプションを用います。 右辺には, 描画部分の長さ,描画しない部分の長さ の繰り返しとなる偶数個の長さを与えます。 #ref(dash01.png) ---dash=.. の右辺値は,[[\setdash>setdash]] の引数と同じです。 **線種変更(<hasenLG=..> [#hasenLG] <dash=..> による破線描画では,頂点がぼけてしまうことがあります。 <hasenLG=..> を用いると,描画線素が頂点で始まり,頂点で終わります。 #ref(hasenLG01.png) **内部塗りつぶし <nuriiro=..> [#nuriiro] 多角形の内部を塗りつぶすには, <nuriiro=..> オプションを用います。ただし,pszahyou(*)環境を前提とします。 #ref(nuriiro01.png) **接続修正(pszahyou(*)環境) <linejoin=..> [#x407a9bc] 頂点における接続状態は 線分を重ねただけではV字型のクサビが出来てしまいます。 PostScript には,これを修正する方法が3通り用意されています。 それを切り替えるオプションが <linejoin=..> です。右辺値は 0 : マイター接続(デフォルト) 1 : ラウンド接続 2 : ベベル接続 のいずれかです。 まずは,zahyou環境の状態からみていきます。 \Takakkei は,多角形を描画するとはいえ, 個々の辺を重ねて配置するだけです。 線分が太くなると,V字型の切り欠きが目立ってきます。 なお,この項は図を拡大したくなりますので &ref(linejoin00.pdf,,PDFファイル);を用意しました。 #ref(linejoin01.png) pszahyou環境でも,個々の線分を描画したものを連ねた場合は,上と同様です。 #ref(linejoin02.png) しかし,\Takakkeiの引数に点列を与えて折れ線を描画させると, 折れ点で「マイター接続」と称される補正が行われます。 すなわち,線分AB, BCの外側のエッジを延長し,交わらせます。 上の図と下の図では,`B'の位置は同じです。 下の図では,折れ線が`B'の位置近くまで延長されていることがお分かりでしょうか。 #ref(linejoin03.png) マイター接続では,本来の点B--赤線の交点--と折れ線の頂点がだいぶずれてしまいます。 折れ点の接続表現法には「マイター接続」以外も用意されています。 その一つが「ラウンド接続」です。 線幅と等しい直径を持つ円弧を折れ点を中心として描画します。 #ref(linejoin04.png) もう一つが「ベベル接続」と呼ばれるもので, 単に線分を重ねて出来るV字型の切込みを塗りつぶします。 #ref(linejoin05.png) - <linejoin=..>オプションは,当該 \Takakkei に対してのみ有効です。~ 広範囲に有効とするには \setlinejoin コマンドを用います。 *注意事項 [#d633c2d5] *関連事項 [#y7b905d3] -[[\Drawline>Drawline]] -[[\Baton>Baton]] RIGHT:&counter;