2013-02-23 16 views
11

、SVGの仕様は、任意の組み込みのブール演算のサポートブール演算SVGパスの

ブール演算はほとんど重複パスの固有の形状を変更するための方法ですがありません。それらは、より単純な形状の操作を実行することによって複雑な形状の構築を可能にし、Constructive Solid Geometry(CSG)と幾分類似している。

しかし、この質問は2Dベクトルパスを参照しています。 一般的なパス操作は、Union、Substraction、Intersection、XOR(Exclusive Or)です。

これで私を助けるライブラリがありますか?

+0

入出力ペアの例をいくつか教えてもらえますか? –

+0

ベン図のように? –

+0

これらはsetオペレーションのようなもので、ブール演算ではありません。そして、2つの円をFigure 8にすることはできません.SVGサークルはありますが、SVGフィギュアはありません。そのためにKineticJSのようなキャンバス・ライブラリーを使用したいかもしれません。 –

答えて

8

Javascript Clipperがあります。これは、パス上のBoolean Operationsのすべてのセットを許可しますが、入力パスがのポリゴンであるという条件の下で可能です。

  • 我々は任意の曲線(キュービック/二次ベジェ曲線)を持っている場合、彼らはDe Casteljau algorithmを使用して簡単にポリゴンに細分化することができます。小分けサンプルが十分に高い場合、頂点の数が直線的に増加するように、結果はの忠実度に応じて、データの大量のコストで(視覚的に曲線のように見えるポリゴンあろう

    • 細分)。

その後、我々は、ブール演算のためのJavaScript Clipperにパスを供給することができます。


ここで注意しなければならないのは、カーブが含まれている場合、パスの本質的な「湾曲」性質を失うことです。上記の「ポリゴン化」を行うことは、多かれ少なかれ一方向の通りです。

+0

このようなポリゴン化がオプションでない場合はどうなりますか? – Thayne

+0

@thayne Google 'fat line clipping' –

関連する問題