2009-05-09 16 views
5

Union、Difference、およびIntersectionなどのブール演算で2つのパスを結合することで、カイロでパスを構築する方法はありますか?私はレンダリングにカイロを使用するベクトルグラフィックスアプリケーションを開発しており、ユーザにこの方法でパスを結合する機能を提供したいと考えていますが、カイロでその方法を見つけることはできません。カイロパスのブール演算?

答えて

0

オペレータとパスを組み合わせても意味がありません。あなたは "ラインアンドカーブまたはアーク"から何を得ますか?

代わりに、あなたはcairo_set_operator()を使用してcompositing operatorsを適用することができます:それは現在の描画操作(ということcairo_fill()cairo_stroke()または何でも)は、表面の古いコンテンツと混合する方法を設定します。

+1

私は、Inkscapeがブーリアン演算でパスを結合する方法を示しています:http://www.usinginkscape.com/node/34。これらのエフェクトの大半は、2つの図形のパスが交差する場所に必ずしも適切な線結合がないことを除いて、一連の合成演算子を使用して実現できます。 –

+0

私はまだ質問を理解していません:inkscape自体はバージョン0.46以降のカイロを使用しています:http://wiki.inkscape.org/wiki/index.php/Release_notes/0.46#Speed_and_interactivity – ntd

2

私はcairoライブラリでこれを行う方法が見つかりませんでした。しかし、それは私が探していた機能です。 ntdで言及された合成演算子がこれを行うことができないように見える場合、2つのパスの組み合わせを書くなどの場合には、間違いなく役に立ちます。

その間、私はinkscape用のスクリプトを書こうとしていて、インクスケープに結合/差分をさせようとしています。私が取り組んでいる問題では受け入れられますが、あなたにとっては間違いありません。あなたはカイロか他のsvgライブラリのいずれかで運があったのですか?数日のグーグルグーグルでは、それほど些細なことではないようです。/

+0

ps-path intersect/combine/overlayがリストされています可能な夏のコードプロジェクトとしてカイロサイトでhttp://cairographics.org/summerofcode/ideas/ – ImAlsoGreg

関連する問題