あるオブジェクトを別のオブジェクトの前後に同時に配置する方法は?


37

私は(テストとして)バーが通る円を作成しようとしました。バーは円の一方の側の下、もう一方の側の上に配置する必要があります。

これは、円を2つのオブジェクトに分割することで行いましたが、パスが正確に一致していても、分割が行われた目に見える継ぎ目があります。

ここに画像の説明を入力してください

また、円の左部分の下にある影は、本来あるべきようにバーの上に表示されず、影オブジェクトを分割せずにこれを修正する方法は考えられません。

これを行うためのより良い方法はありますか?


必要に応じて、svgもアップロードできます。


2
バーを分割してみましたか?また、ラインやラインジョイントのレンダリングに影響を与えることがあるため、部分ズーム率になっていないことを確認してください。
ジョニークトノフスキ14年

どのソフトウェアを使用していますか?イラストレーター?
ヘンリックEkblom 14年

1
Inkscapeではオブジェクトの混合重畳は許可されていませんが、いくつかの方法で進めることができます。最も速いのは、おそらくバーで覆われている円をカットすることです(カットは直線です)。あるいは、接合点をより正確に移動できます(継ぎ目は見えないはずです。おそらく、問題は円を切る方法にあったのでしょう)。
パオロジベッリーニ14年

2
PSエッジの配置はInkscapeの問題のようです(こちらこちらこちらご覧ください)。そしてまた、Inkscapeの参照のアンチエイリアシングについてのよくある質問をスナップをお使いの水平/垂直方向のピクセルグリッド上のエッジ、および広いピクセルの全体数の使用ストローク。1 pxユニットが1ビットマップピクセルに対応するように、90dpiでビットマップをエクスポートします
Paolo Gibellini 14年

@JohnnyKutnowskiズームに伴って変化しますが、分割がほとんどなくなることがあります。ただし、1:1ズームでは非常に見えます。
gandalf3 14年

回答:


42

表示されるギャップは、Inkscapeによる不完全なレンダリングによるものであり、SVGをエクスポートまたは使用する方法に応じて必ずしも問題になるわけではありません(正確にカットする限り)。ただし、影を切り取ると問題が発生する可能性があります(これが正しい方法であると考えられる唯一の方法です)。

これが私の解決策です。例として、簡単なバーをカットしました。しかし、外側の円を切り取るといくつかの利点があります。これについては後で説明します。最初に画像:

いくつかのオーバーレイ技術

左はデモンストレーションに透明なオブジェクト(1つは青、1つは赤)を使用し、右は結果を示しています。

  • 上部では、あなたがしたことを再現し、私のバーを切りました。これにより、一部のズームレベルまたはピクセルエクスポートで前述のギャップが生じます(一部のPDFレンダラーなどでも発生する場合があります)。
  • 中央で、バーの2つの半分をオーバーラップさせます。これにより、ギャップは回避されますが、カットの周りでバーが少し太く見えます(これを確認するにはズームインする必要があります)。
  • 下部では、推奨することを使用しました¹。最大のオーバーラップは、バーの幅の半分です。これにより望ましくないエイリアシング効果(ギャップや太いバーなど)が発生したズームレベルまたはエクスポートが見つかりませんでした。

次に、影を見てみましょう。

ここに画像の説明を入力してください

順序は上記と同じです。右側には、わかりやすいように影だけがあります。

  • 単純なカットの影は大丈夫に見えますが、カット位置ではやや弱いことがわかります。これは、ファジーシャドウの場合に問題になります。
  • 中間には、重大な問題があります。
  • 下部では、カットの位置を確認できますが、シャドウは弱くも強くもなく、異なるように分布しています。特に、影がぼやけると、悪化することはありません。まっすぐなセグメントで行われない場合、カットはさらに見えにくくなります。そのため、中央のバーではなく円をカットする方が有利な場合があります。

¹これは次の方法で実現できます。

  1. 通常どおりカットします。
  2. 各カットエッジの中央にノードを追加します。
  3. 各ノードを、カットするもののwidth²の4分の1だけ外側に移動します。

²この値では、経験的に、影の歪みが最も低いことがわかりました。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.