2011-06-17 4 views
8

私はそれにベジェ曲線を持つ複雑なパスを含むsvgファイルを持っています。 私はこのパスデータをhtmlマップエリア用に変換する必要があるので、実際には座標が必要です(ただし、大きなカーブの場合は、2つのエンドポイント間にある座標を ' 。SVG:カーブを削除するパスを簡略化しますか?

私はInkscapeのの簡素化パス機能を試してみましたが、これらのパスはまだカーブが含まれて...

は、単純な座標に、これらの曲線を変換する任意のツールまたは式はありますか?たぶん

別Inkscapeの出力フォーマットことその座標にカーブを使用していませんか?

+0

あなただけの座標が必要な場合は、スクリプトを使用してSVGファイルからそれらを抽出することはできませんか? –

答えて

12

Inkscape:

  • ノードによるパスの編集ツール(F2)を選択します。アイコンは斜めのストレートです - あなたのパス上
  • クリックしては、(上部のツールバーに
  • クリックメイク選択したセグメントラインそれが
  • はCtrl-は、そのパス内のすべてのノードを選択するように選択します2つの正方形ノードの間の線)。
6

自動化のために、インクシェイプのFlatten Bezier拡張機能を試してみてください。説明here

+1

これは、実際にはカーブを近似するノードを追加するので、「選択したセグメント線を作成する」よりもはるかに優れています。 –

+0

これは正しい解決策です。 '大きなカーブでは、2つの終点の間にある座標を持つことは非常にうれしいでしょう。拡張子はInkscape 0.92の 'Extensions'>' Modify Path'> 'Flatten Beziers ...'の下にあります。 –

0

SVGパスを簡素化するために、より技術的な方法があります - https://github.com/mattdesl/simplify-path

var path = [ [250, 150], [250, 150], [25, 25], [24, 25], [10, 10] ] 
var tolerance = 10 
path = simplify(path, tolerance) 
//result: 
//[ [ 250, 150 ], [ 25, 25 ], [ 10, 10 ] ] 
関連する問題