「note」に引っ越し中です。移動したページごとに移動先へのリンクを作っていく予定です。

Inkscapeでパスの切れ目を見つける

 このページでは、Inkscapeで描いたパスが意図せずに途中で切れてしまっているときに、その切れている場所(ノード)を探し出す方法について考えてみたいと思います。

 例えば次のようなパスが描かれているとします。一見すると一本の閉じたパスのように見えますが、端の2つのノードがぴったり重なっているだけで、実は閉じていません。

 2つのノードがぴったり重なっているときに見分けが付けばいいのですが、特に違いは現れないようです。Inkscapeのバージョン1.3以前では重なっているノードは少し見た目が変化していたのですが、バージョン1.4で変更されて見た目は変わらなくなってしまったようです。バージョン1.4ではノードのハンドルの見た目をCSS(スタイルシート)を使って自由に変更できるようになりましたが、その影響かもしれません。

 例えばノードの多い複雑なパスを描くときや、複雑な画像をトレース機能でトレースしてパスを生成したときなどに、いつのまにかパス全体があちこちで切れていて、1本のパスだと思っていたのに実際は複数のサブパスに分かれてしまっていることがあります。

 そのことに気付くきっかけでよくあるのが、パスのセグメントを1つ削除したときに、思いもよらないところがフィルとして塗りつぶされてビックリするという状況です。

 例えば次のように星形のパスの隣り合う2つのノード(この例では右上の2つ)を選択して、ツールコントロールバーのセグメントを削除ボタンを押して、間のセグメントを削除しようとした場合です。

 1本セグメントを削除しただけなので結果的に閉じてないパスになるけれども、フィルは閉じたパスだったときと同じ領域のままで、次のように塗りつぶしの様子は変わらないはずだと思っていても・・・。

 たまたま気づいていないだけで、次のようにすでに別のセグメント(右下)が消えているパスを対象にさらにもう一本セグメントを削除しようとしている場合があります。

 すると、右上のセグメントを削除した場合、結果としてパス全体は2つのサブパスに分割されることになってしまい、当然フィルもサブパスごとに囲われた領域となるので、セグメントを削除した瞬間に次のように思いもしない領域が塗りつぶされた状態になり、ビックリしてしまいます。

 最初にすでに消えていたほうのセグメントは消すつもりがなかったものなのであれば、切れてしまっているパスの端っこを探してツールコントロールバーの新しいセグメントで連結ボタンを押してつないで修復してしまえばいいのですが、ノードの数が非常に多いパスを編集している場合、どのセグメントが消えてしまっているのか(言い換えればパスの端っこのノードがどれなのか)パッと一目ではわからないことが多いです。

 パスの端っこをうまく見つける方法を考えてみたのですが、こんな方法なら簡単に見つけることができそうです。

 まず、どこか一箇所のセグメントを削除します。その時点で他に切れ目がある場合はパス全体が2本のサブパスに分かれた状態になっているはずです。

 そこでパス上のノードを適当に1つ選択して・・・

すべて選択(Ctrl+A)」を操作すると一方のサブパスの全ノードが選択されて、ノードをドラッグすれば一方のサブパスだけを移動させることができるので、少しだけ移動してみればどこが端っこなのかわかると思います。

 あるいはパスを選択してノードを表示しておいて(ノードは表示されているけど1つも選択されていない状態で)タブキーを押すと、そのパスの端っこのノードが選択状態になるので、そのノードが端っこであることがわかるという方法もありそうです。反対側の端っこのノードを選択状態にするには、続けてShift+タブキーを押します。