Re: Drawing after CGContextClosePath() still appends line
Re: Drawing after CGContextClosePath() still appends line
- Subject: Re: Drawing after CGContextClosePath() still appends line
- From: Rick Mann <email@hidden>
- Date: Mon, 19 Aug 2013 17:51:15 -0700
On Aug 19, 2013, at 17:47 , Ken Thomases <email@hidden> wrote:
> On Aug 19, 2013, at 7:36 PM, Rick Mann wrote:
>
>> On Aug 19, 2013, at 17:25 , Roland King <email@hidden> wrote:
>>
>>>
>>> On 20 Aug, 2013, at 8:03 AM, Rick Mann <email@hidden> wrote:
>>>
>>>> I'm drawing a couple of arcs and then calling ClosePath() to close up the shape I drew. This works great. But then I repeat the process in a different place, and stroke the whole thing. Unfortunately, Core Graphics adds a line from the last point in the closed path to the first point of the new arc I add. From my reading of the docs, this line shouldn't happen.
>>>>
>>>> "After closing the subpath, your application can begin a new subpath without first calling CGContextMoveToPoint. In this case, a new subpath is implicitly created with a starting and current point equal to the previous subpath’s starting point."
>>>>
>>>
>>> From my reading that's exactly what should happen. You close the subpath then you implicitly start one because you didn't call CGContextMoveToPoint() when you add the next arc, that path starts from the original starting point of the old subpath (which is functionally exactly the same as the endpoint). So the new subpath starts with a line to the start of your new arc from the start of the previous path. If you don't want that, do the move.
>>>
>>> There's a difference between a context with no path at all and a context which already contains subpaths, closed or not.
>>
>> Oh, I think you're right. Pity. It makes working with arcs a real pain. I have to compute the arc's starting point and move to it. Unless I'm missing something?
>
> You can begin a new path for each arc. If you ultimately want one path with multiple disjoint subpaths, I think you can create the arc subpaths as individual CGPath objects and add them to either the context path or to a master CGPath object.
This is basically what I'm doing now.
Obviously, it can't be changed now, but AddArc() should never have drawn that first line segment. It's inconsistent with what you probably want, and with other methods like CGContextAddLines() or CGContextAddRect().
--
Rick
_______________________________________________
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