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 22:26:12 +0800
On 29 Oct, 2012, at 9:29 PM, Kyle Sluder <email@hidden> wrote:
> On Mon, Oct 29, 2012, at 06: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'?
>
> From the CGContextClip documentation:
>
>> The function uses the nonzero winding number rule to calculate the intersection of the current path with the current clipping path.
>
> So try specifying your control points in the opposite order.
>
> --Kyle Sluder
Doesn't help I'm afraid. If I only have that one, single, path, the even-odd rule returns odd inside the path/circle so it's inside and the non-zero returns either 1 or -1 depending on the order of the control points so either way so that's inside too and in either case they get clipped in, not clipped out. I think I need two paths, one at the boundary of the context and one inside it, but I haven't managed to quite get my head around it.
_______________________________________________
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