

直線を次々に引いていって四角形を描きます。
ここで線幅を太くしているのは意味があります。
左上の角をよく見ると、少し凹んでいます。
これは線が繋がっていないためです。
1 2 3 4 5 6 7 8 9 10 | %!PS-Adobe-3.0 EPSF-3.0 %%BoundingBox: 0 0 240 240 120 120 translate % 座標の原点を中央に移動 newpath % パスの初期化 -60 60 moveto % 始点を移動(左上) -60 -60 lineto % パスを引く(左下へ) 60 -60 lineto % 右下へ 60 60 lineto % 右上へ -60 60 lineto % 左上へ stroke % 線を描画 |

線を繋ぐには左上に線を引くのではなく、closepathで繋ぎます。
1 2 3 4 5 6 7 8 9 10 11 12 | %!PS-Adobe-3.0 EPSF-3.0 %%BoundingBox: 0 0 240 240 %%Title:closepathで線を繋ぐ 120 120 translate % 座標の原点を中央に移動 newpath % パスの初期化 -60 60 moveto % 始点を移動(左上) -60 -60 lineto % パスを引く(左下へ) 60 -60 lineto % 右下へ 60 60 lineto % 右上へ % (不要) -60 60 lineto 左上へ closepath % 線を繋ぐ stroke % 線を描画 |

直線の引き方には2通りあります。linetoが絶対位置を指定するのに対してrlinetoは相対位置で指定します。
rlinetoも最初はmovetoで始点をおきます。
1 2 3 4 5 6 7 8 9 10 11 | %!PS-Adobe-3.0 EPSF-3.0 %%BoundingBox: 0 0 240 240 120 120 translate % 座標の原点を中央に移動 newpath % パスの初期化 10 setlinewidth % 線幅10ポイント -60 60 moveto % 始点を移動(左上) 0 -120 rlineto % 左パス 120 0 rlineto % 下パス 0 120 rlineto % 右パス closepath % 線を繋げる stroke % 線を描画 |
【オペレータの説明】
closepath | パスの始点と終点を接続する。 |
dx dy rlinto | 現在のポイントを基点に、相対位置(水平方向dx, 垂直方向dy)まで線分を追加(relative linetoの略) |
コメント