Я пытаюсь создать приложение, которое позволяет пользователю рисовать пунктирную линию пальцем на iPad. У меня есть все процедуры рисования для создания отдельных линий. Мой вопрос заключается в том, как я должен рисовать двойную линию таким образом, чтобы она не перекрывала себя при создании кривых. Я пытался сделать это, добавив в мой путь вторую строку со смещением x и y текущей точки. Это прекрасно работает, пока вы двигаетесь вертикально или горизонтально. Когда вы рисуете под углом, двойные линии становятся одной линией.
Я храню массив точек, сохраненных как NSValues (pathPoints), чтобы я мог сохранить их для дальнейшего использования. Начальная точка - это первая точка в pathPoints.
UIGraphicsBeginImageContext(self.frame.size);
//This needs to be a dotted line
CGFloat pattern[] = {10,20};
CGContextSetLineDash(UIGraphicsGetCurrentContext(), 3, pattern, 2);
CGMutablePathRef path = CGPathCreateMutable();
CGMutablePathRef path2 = CGPathCreateMutable();
CGPoint startingPoint = [[pathPoints objectAtIndex:0] CGPointValue];
CGPathMoveToPoint(path, nil, startingPoint.x, startingPoint.y);
CGPathMoveToPoint(path2, nil, startingPoint.x + 10, startingPoint.y + 10);
for (int i = 1; i < [pathPoints count]; i++)
{
CGPoint linePoint = [[pathPoints objectAtIndex:i] CGPointValue];
CGPathAddLineToPoint(path, nil, linePoint.x, linePoint.y);
CGPathAddLineToPoint(path2, nil, linePoint.x + 10, linePoint.y + 10);
}
// конечно позже я добавляю пути к контексту и обводю их.
CGContextAddPath(UIGraphicsGetCurrentContext(), path);
CGContextAddPath(UIGraphicsGetCurrentContext(), path2);
CGContextStrokePath(UIGraphicsGetCurrentContext());
UIGraphicsEndImageContext();
Я очень ценю любую помощь, которую я могу получить с этим.