svg2xaml、私がわかる範囲では直りました。
見つかった問題点は昨日のものから3つ増えて以下の5つ。
1.ストロークの接続点の種類が反映されない。
2.ストロークの端点同士が勝手に結ばれる。
3.色が変。
4.ストロークの太さに変換が適用されていない。
5.XY軸に平行な直線が描画されない。
1は昨日解決しました。
2は、GeometoryをPathGeometoryに変換するためにPathGeometry.CreateFromGeometryでなくGeometry.Combineを使っていたのが原因でした。
素直な方法ではなく奇っ怪な手段を用いているのを見ると、メソッドの意味を考えずに使ってしまったように見えます。
3は、普通のARGBで途中まで計算していたのに途中からその数値でScRGBを計算してしまったために起きた問題でした。
どんなことが起きているのかというと、描画される色が実際より明るくなってしまいます。
おそらくこれも、メソッドの引数と戻り値の方だけを見て意味を考えずに使ってしまったのでしょう。
4のストロークの太さについては、もう、そのままです。
そもそもこのライブラリがストロークにまともに対応する気がなかったようなので、まあ当然これも対応していなかったというわけです。
変換行列の行列式から拡大率を計算して太さに反映させました。
5は、パスの面積が0ならば表示しないという実装になっていました。
ストロークがなくフィルのみならば面積0=何も塗らないという意味でこの実装が正しかったのですが、線は面積が0でも表示されます。
というわけで、線がなくて面積が0ならば表示しないというロジックに変更しました。
昨日に引き続きばいきんまんの絵で改善の様子を残しておきます。
1306076321.png