では早速、前回ラストで見るのを保留にした四角形のタグを見てみようか。
<rect id="rect817" height="29.319" width="49.736" y="58.283" x="24.698" fill="#ececec"/>
……ああ、そうね。そうなるよね。Paradrawみたいに四角も丸も同一形式のパス扱いじゃないんだもんね……。こんな感じで機能が幅広い分、仕様も色々あって複雑そうだから、SVGの仕様書とか見ないでどうにかしようと思ったんだけどな。
ま、とりあえずさくっとパス化してもう一度。
<path id="rect817" fill="#ececec" d="
m24.698,58.283,49.736,0,0,29.319-49.736,0z"/>
これはまあまあ解りやすいんじゃないかね。こっちはfillがあるのと……えーと、出力した時は気にしてなかったけど、この四角はアウトラインないな。ストローク系のパラメータが一切ないや。ま、引き続き気にしない。
ひとまず、またmが出てきた。しかも最初に。これはつまり、パスの始まりを表す記号なのかな。他のSVGファイルを見てもパスの始まりは一通りmになってるし。で、目を引くのがラストのzだが、これはパスを閉じる記号だろう。座標を見た感じだとコの字型で止まってるからこれで始点に戻していると思われる。あと、全ての座標がカンマのみで区切られている。カンマはやっぱりシャープノードなのかねえ。
俺の灰色の脳細胞がフル回転しても、結論は白黒つかずのグレーのままである。ここまで見事にさっぱりではさすがにお手上げなので、諦めて仕様書を紐解くことにする。頼むぜGoogle。
えー。path要素はSVGのキモであり多用されることを考慮し、表記を簡略化できるようになっているそうだ。だろうね、だからさっぱりなんよ。パスデータすなわちd要素に於いてコマンドは1文字で表記され、状況によって省略可能。
で、コマンド。今の所毎回見かけるmはmovetoコマンドで、描画ポイントを設定するそうだ。全てのコマンドは大文字で絶対座標、小文字で相対座標を示す。確かにサンプルはどっちも座標にマイナスがあって相対座標だったし、コマンドはどれも小文字だった。Paradrawのデータは絶対座標だったから相対座標に計算し直さなきゃならないかと思ったが、コマンドを大文字にするだけで良さそうだな。
zはclosepathコマンド。パラメータ無しなので大文字で書いても小文字で書いても動作に変化無し。現在の位置とパスの始点を結んでパスを閉じる。
今の所直接登場していないが、線を引くコマンドはl,Lのlineto。直接登場していないものの、mで始まった後に更に座標が続くと暗黙の了解としてlコマンドに切り替わる。つまり、四角形のデータならば最初の2個だけがmの座標設定に与えられた座標で、それ以降は暗黙のlコマンドと言うことだ。垂直線並びに平行線を引くパラメータ一つのv,V,h,Hコマンドもあり、それぞれが何なのかはそれぞれを英語で何と言うかとか書いた順番とかで推測してくれ。
c,Cはcurvetoコマンドで、三次ベジエ曲線を描く。二次ベジエのq,Qもあり、またそれぞれにベジエの制御点の一つを現在位置に固定してパラメータの数が一つ減るs,Sならびにt,Tと言うコマンドがある。
Inkscape使い始めた時にParadrawと曲線の引き方が随分違うことに少し戸惑い、その違いの一つに頂点から二方向に伸びるベジエ引っぱり線で頂点間にS字を描けることだったが、これがつまり三次ベジエって事か。つー事は、Paradrawのデータには二次ベジエを適用すると良さそうだ。楕円弧コマンドなんてのもあるが、Paradrawに該当するものは無いし個人的に使うことも少なそうなのでスルー。まあ、aとだけ言っておく。
よし、パスデータについては必要なことは把握した。じゃあ、これからどうするか考えるところで丸ごと保留しつつ次回。

0