フリーのベクター・グラフィック・エディタ vecterion 制作作業
svgの読み込み(書き出し)テストを追加しました。 #vecterion pic.twitter.com/nD0EpyVhEj
2017-03-25 21:19:12私は出力画像のdiffの有無を判定したいだけなのだけれど。 複雑すぎやしないか。 #vecterion pic.twitter.com/QDXLv4nE4E
2017-03-25 21:02:45@MNukazawa svgのpath要素:PvElement_Curve で対応させ、子要素として部分パスを作ると。 孫要素は作れないように作るわけですね。 そうするとこれまでcurveに対して行ってきた操作のいくつかは実際には部分パスに対して行うことになるのか。
2017-03-25 12:08:17@MNukazawa ちょっと調べてみると > 初期の PostScript ラスタライザは「非ゼロ巻き数ルール」を使っていましたが、最近のものは「奇偶ルール」を使います。 fontforge.github.io/ja/editexample… とあって、成る程フォント界隈はこうなのだなと楽しんでいます
2017-03-25 12:00:06@called_D 幸い、PvElementはCurveに至るまですべて共通で入れ子が可能なので、Curveは子Elementとして部分パスElementを1つ以上持つ、という変更で対応可能です。
2017-03-25 12:01:17@MNukazawa 部分パスの集合の構造が、PvElement_Curveの集合になるときに「あるpath内にもともとあったグループ」の情報が失われるということですね。 PvElement_Curveの集合に、塗りつぶしの作用に関する余分な情報をもたせる必要がありそうだ
2017-03-25 11:57:30@called_D レンダラによる塗りつぶしの際に、部分パスの集合のグループと、PvElement_Curveの集合のグループを区別する方法が必要になるようなので、ボツかなと。
2017-03-25 11:53:05@called_D path要素内に複数の部分パスがあった場合に、部分パス毎に曲線要素(PvElement_Curve)に変換して、グループ要素に格納しよう、と考えていました。
2017-03-25 11:50:09いやまあ、面倒なだけで問題はないのだけれど。 PvElement、無駄に何でも入れ子にできる共通の構造体にしておいてよかった。
2017-03-25 11:40:31@MNukazawa 部分パスの概念は塗りつぶしの方法に関わってましたよね triple-underscore.github.io/SVG11/painting… 1curve1部分パスにするなら、vecterionのcurveどうしの塗りつぶしの方法をきちんと合わせたうえでということになるので闇が深そうです……。
2017-03-25 11:20:00@MNukazawa 最後のM/mまでですね。 > 後続の "moveto" 命令(すなわち最初の命令でない "moveto")は新たな部分パスの開始を意味する > 現在の部分パスの始点への直線が自動的に描かれる。 triple-underscore.github.io/SVG11/paths.ht…
2017-03-25 09:59:17@MNukazawa 詳しくは仕様を読まないとだと思いますが、 > 直近のM位置まで直線を引いて線を閉じる. defghi1977.html.xdomain.jp/tech/svgMemo/s… とあります。
2017-03-25 09:50:11先頭でないmoveto命令、実は難しいかも。 pathが途切れるのはvecterion側では想定していなかった。 というかこれ、z命令来たらどこと繋げるんだ...? #vecterion
2017-03-25 09:30:29