2010-12-26 8 views
2

私はNSBezierPathを持っています。私はパスにいくつかの内側の輝きを追加したいと思います(外側のストロークのちょうど内側の明るいストローク)、そして心に来ることは、1ピクセルだけ縮小された同じパスを使用することです(ラインのサイズはすでに)ストロークしています。これを行う方法はありますか?NSBezierPathを "サイズ変更"する簡単な方法はありますか?

また、ボーダー(ストローク)とグローをベジェパスに適用する際に使用できるパターンがありますか?

例、Google Chromeのタブを(非常に微妙な)内側グロー:あなたはあなたが実際にベジェのサイズを変更する必要はありません何を、知っている

Chrome Tab

答えて

3

NSBezierPathは、NSAffineTransformを使用して簡単にサイズを変更できます。

+0

これはうまく動作します、ありがとうございます。線幅を変更すると、実際には細い線が太い線の内側に配置され、両辺に輝きがあるように見えます。ちょっとした "スケッチ"な感じがしますが、それは私が目を向けるきれいな表情ではありません。 NSAffineTransformを使用してパスを調整すると、問題が解決されます。 – d11wtq

+0

クール。ちなみに、パスのサイズを変更せずに太い/細い線を行う場合は、線を描画する前に '[path addClip]'を使ってパスをクリッピング領域として設定することができます。次に、パスの内側にある線の部分だけを描画します。 –

3

は...あなたがしなければなりません

  1. ストローク幅を狭くする、新しいものにベジェ
  2. の複製を作る:ストローク幅を変更です。 (元の30枚なので、この複製物では26を試してみてください)

新しい小さなものを大きなものの上に置きます。

私はあなたのために働くことを願っています。

+0

ありがとうございます。それは、同じ幅の異なる同じパス上で2回ストロークを呼び出すだけでも機能します。 – d11wtq

+0

なぜベジエパスをコピーしますか? – Richard

+0

とにかく 'NSBezierPath'の複製をどうやって作っていますか? – Jacob

関連する問題