13

2014 年初頭の時点で、SVG 仕様にはブール演算のサポートが組み込まれていません。

ブール演算は、ほぼ重複するパスの固有のジオメトリを変更するためのメソッドです。それらは、より単純な形状で操作を実行することによって複雑な形状の構築を可能にし、Constructive Solid Geometry(CSG)に何らかの形で似ています。

ただし、この質問は 2D ベクトル パスに関するものです。一般的なパス操作は、ユニオン、減算、交差、XOR (排他的論理和) です。

これで私を助けるライブラリが浮かんでいますか?

4

1 に答える 1

8

入力パスがポリゴンであるという条件の下で、パスに対するブール演算のすべてのセットを許可するJavascript Clipperがあります。

  • 曲線 (3 次/2 次ベジエ曲線) がある場合は、De Casteljau アルゴリズムを使用して簡単にポリゴンに分割できます。

    • サブディビジョン サンプルが十分に高い場合、結果は視覚的に曲線のように見えるポリゴンになります (ただし、サブディビジョンの忠実度に応じて、頂点の数が直線的に増加するため、大量のデータが犠牲になります)。

次に、ブール演算用のJavaScript クリッパーでパスをフィードできます。


ここでの注意点は、パスに曲線が含まれていると、パスに固有の「曲がりくねった」性質が失われることです。上記の「多角化」を行うことは、多かれ少なかれ一方通行です。

于 2013-04-27T03:53:45.370 に答える