On Aug 19, 2013, at 17:47 , Ken Thomases <k...@codeweavers.com> wrote:

> On Aug 19, 2013, at 7:36 PM, Rick Mann wrote:
> 
>> On Aug 19, 2013, at 17:25 , Roland King <r...@rols.org> wrote:
>> 
>>> 
>>> On 20 Aug, 2013, at 8:03 AM, Rick Mann <rm...@latencyzero.com> 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 (Cocoa-dev@lists.apple.com)

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:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to