1

ポイント/ライン/ポリゴンの「絶対」位置を確認できるように、SVG ファイルからほとんどの「g 変換...」を削除するコマンドライン ツールはありますか?

つまり、 Inkscape での SVG 行列変換の平坦化およびコマンドライン ツールとして変換と行列を使用して SVG で要素の実際の x/y 位置を取得する方法で説明されている行列乗算手法を実装した人はい ますか?

SVG Cleaner は Qt を必要とするようで、コマンドライン ツールではないようです (さらに、コンパイルできませんでした)。

4

1 に答える 1

2

いいえ、誰もこのツールを作成していません。少なくとも、あなたも私もそれを見つけることはできません。問題の一部はあなたの定義にあります。変換を削除するように依頼すると、

[…]ポイント/ライン/ポリゴンの「絶対」位置を確認できます。

SVG 要素と変換のサブセットでは、変換を要素の属性に焼き付けることができますが、一般的なケースでは機能しません。たとえば、次の単純なケースを考えてみましょう。

<svg xmlns="http://www.w3.org/2000/svg">
  <g transform="translate(-10,10) skewX(57) rotate(45) translate(17,17)">
    <rect fill="red" stroke="blue" width="20" height="30" />
  </g>
</svg>

歪んだ、回転した四角形

<rect>同じ結果を示すように、要素の特定の属性を変更する方法はありません。あなたができる最善の方法は、全体的な変換を表す要素transform="…"に属性を設定することです。<rect>これは、SVG UA で行うのは比較的簡単ですが、スタンドアロンのコマンドライン ツールで行うのは少し難しくなります (それでも可能です)。私はあなたがそれを行うのを手伝いますが、ポイントの絶対位置について何も教えてくれないので、結果は役に立たないと思います.

「いいえ、 ではできませんが、 をまたは<rect>に変換し<rect>て、それらの点に絶対座標を使用する<polygon><path>ことはできます」と言いたくなるかもしれません。しかし、あなたは半分だけ正しいでしょう。ゆがみによって見た目のストローク幅が変化していることに気付いた場合<polygon>、ゆがんだ<rect>.

一般に、できることは、すべての<g>変換の合計を個々の要素に焼き付けることであり、そのような変換がコンテンツの最終的な場所と外観に大きな影響を与える可能性があることを認識することです。

于 2013-08-31T23:02:29.047 に答える