編集可能

フリーのベクター・グラフィック・エディタ vecterion 制作作業

vecterionリリースまでにしたツイートを雑にまとめました。 vectreionは開発中のものです。 あまり期待はしないでください。 https://github.com/MichinariNukazawa/vecterion_vge gtk3ビルド済みパッケージ、SVGのElementについて等。
1
Michinari Nukazawa @MNukazawa

とりあえずmoveto命令のことは保留。 #vecterion

2017-03-25 21:35:37
Michinari Nukazawa @MNukazawa

svgの読み込み(書き出し)テストを追加しました。 #vecterion pic.twitter.com/nD0EpyVhEj

2017-03-25 21:19:12
拡大
Michinari Nukazawa @MNukazawa

私は出力画像のdiffの有無を判定したいだけなのだけれど。 複雑すぎやしないか。 #vecterion pic.twitter.com/QDXLv4nE4E

2017-03-25 21:02:45
拡大
少年D @called_D

@MNukazawa svgのpath要素:PvElement_Curve で対応させ、子要素として部分パスを作ると。 孫要素は作れないように作るわけですね。 そうするとこれまでcurveに対して行ってきた操作のいくつかは実際には部分パスに対して行うことになるのか。

2017-03-25 12:08:17
少年D @called_D

@MNukazawa ちょっと調べてみると > 初期の PostScript ラスタライザは「非ゼロ巻き数ルール」を使っていましたが、最近のものは「奇偶ルール」を使います。 fontforge.github.io/ja/editexample… とあって、成る程フォント界隈はこうなのだなと楽しんでいます

2017-03-25 12:00:06
Michinari Nukazawa @MNukazawa

@called_D 幸い、PvElementはCurveに至るまですべて共通で入れ子が可能なので、Curveは子Elementとして部分パスElementを1つ以上持つ、という変更で対応可能です。

2017-03-25 12:01:17
少年D @called_D

@MNukazawa 部分パスの集合の構造が、PvElement_Curveの集合になるときに「あるpath内にもともとあったグループ」の情報が失われるということですね。 PvElement_Curveの集合に、塗りつぶしの作用に関する余分な情報をもたせる必要がありそうだ

2017-03-25 11:57:30
Michinari Nukazawa @MNukazawa

@called_D fill-ruleのことを考慮するのを忘れていました。

2017-03-25 11:55:46
少年D @called_D

@MNukazawa (無視する場合、実装によっては後で(おもに自分が)苦労することになるのではないか? の意)

2017-03-25 11:54:09
Michinari Nukazawa @MNukazawa

@called_D レンダラによる塗りつぶしの際に、部分パスの集合のグループと、PvElement_Curveの集合のグループを区別する方法が必要になるようなので、ボツかなと。

2017-03-25 11:53:05
Michinari Nukazawa @MNukazawa

@called_D path要素内に複数の部分パスがあった場合に、部分パス毎に曲線要素(PvElement_Curve)に変換して、グループ要素に格納しよう、と考えていました。

2017-03-25 11:50:09
少年D @called_D

@MNukazawa その方法を聞いてもよろしいですか

2017-03-25 11:45:39
Michinari Nukazawa @MNukazawa

いやまあ、面倒なだけで問題はないのだけれど。 PvElement、無駄に何でも入れ子にできる共通の構造体にしておいてよかった。

2017-03-25 11:40:31
Michinari Nukazawa @MNukazawa

あるいはもういっそのこと無視しようか、という考えが頭をもたげつつある。 #vecterion

2017-03-25 11:39:20
Michinari Nukazawa @MNukazawa

@called_D ありがとうございます。 完全に間違った方法で解決しようとしていました。

2017-03-25 11:36:29
少年D @called_D

@MNukazawa 部分パスの概念は塗りつぶしの方法に関わってましたよね triple-underscore.github.io/SVG11/painting… 1curve1部分パスにするなら、vecterionのcurveどうしの塗りつぶしの方法をきちんと合わせたうえでということになるので闇が深そうです……。

2017-03-25 11:20:00
Michinari Nukazawa @MNukazawa

@called_D まったく想定していなかったので、どう対応するか検討中です。

2017-03-25 10:28:41
少年D @called_D

@MNukazawa 一つのd命令で複数のかたちを描くことがあると認識してなかったら脳が勝手に読み飛ばしますよね。

2017-03-25 10:07:09
Michinari Nukazawa @MNukazawa

@called_D ありがとうございます。 部分パス、という言葉を普通に読み飛ばしていました。

2017-03-25 10:01:01
少年D @called_D

@MNukazawa 最後のM/mまでですね。 > 後続の "moveto" 命令(すなわち最初の命令でない "moveto")は新たな部分パスの開始を意味する > 現在の部分パスの始点への直線が自動的に描かれる。 triple-underscore.github.io/SVG11/paths.ht…

2017-03-25 09:59:17
少年D @called_D

@MNukazawa この直近とは時間的な直近のことだと思われます

2017-03-25 09:56:43
少年D @called_D

@MNukazawa 詳しくは仕様を読まないとだと思いますが、 > 直近のM位置まで直線を引いて線を閉じる. defghi1977.html.xdomain.jp/tech/svgMemo/s… とあります。

2017-03-25 09:50:11
Michinari Nukazawa @MNukazawa

先頭でないmoveto命令、実は難しいかも。 pathが途切れるのはvecterion側では想定していなかった。 というかこれ、z命令来たらどこと繋げるんだ...? #vecterion

2017-03-25 09:30:29
Michinari Nukazawa @MNukazawa

コードは簡単だけれどテストデータが...それもまあ簡単か。 #vecterion

2017-03-25 00:21:31
残りを読む(200)

コメント

コメントがまだありません。感想を最初に伝えてみませんか?