Re: how to clip inside a path
Re: how to clip inside a path
- Subject: Re: how to clip inside a path
- From: Roland King <email@hidden>
- Date: Mon, 29 Oct 2012 23:46:05 +0800
On 29 Oct, 2012, at 11:43 PM, Ken Thomases <email@hidden> wrote:
> On Oct 29, 2012, at 8:22 AM, Roland King wrote:
>
>> I have a graphics context and a path and I want to clip everything inside the path, ie not display it, and leave everything outside the path displayed. The path is simple and doesn't cross itself, for sake of example it may as well be a circle. If I start with a clip-free GC and set that circle as a clipping path, I'll get the opposite, everything in the circle will show, how do I do the other way around? Does it work if I set a path at the bound rect of the GC plus my shape in the middle? That would seem to have two crossings to get into the shape, one at the bounds of the rect, one as you cross the shape, which should mean everything inside the shape is 'outside' but does a path at the very extremities of the GC, or even outside it, count as 'crossed'?
>
> Yes, that's the correct way. A clip path is geometric. It doesn't matter what the bounds of the GC are. Obviously, only pixels inside the GC bounds can possibly be painted, but the determination of what's clipped or not is determined using the clipping path as a mathematical construct.
>
> You don't need to use the exact bounds of the GC. You can use an outer path that's larger than the GC bounds. Although, I'm not sure if constructing one from CGRectInfinite is wise, you can probably use origin -30,000,-30,000 size 60,000x60,000 or something.
>
> Regards,
> Ken
>
Perfect, thanks. That's how I thought it should work, I haven't made it work yet so somewhere I've messed up, let me strip it down and go back to a simpler project to find the error.
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden