Я использую следующий код, чтобы сделать ввод данных пользователя в моем основном нанесении краски:Кварц интерполяция идет шаткий при определенной ширине линий
CGContextRef drawSpace = CGLayerGetContext(currentLayer);
CGContextBeginPath(drawSpace);
CGContextMoveToPoint(drawSpace, [[self.currentStroke objectAtIndex:0]pointValue].x, [[self.currentStroke objectAtIndex:0]pointValue].y);
for (NSValue *v in self.currentStroke) {
CGContextAddLineToPoint(drawSpace, [v pointValue].x ,[v pointValue].y);
/* CGContextMoveToPoint(drawSpace, [v pointValue].x ,[v pointValue].y);
The link I got only showed this called when index = 0, so I dummied it out. Left in,
it produces the original jagged image behavior */
}
CGContextClosePath(drawSpace);
CGContextSetStrokeColorWithColor(drawSpace, [[NSColor blackColor]CGColor]);
CGContextSetLineWidth(drawSpace, self.BrushSize); //Sets the brush size
CGContextStrokePath(drawSpace); //Strokes the path to the layer
, который работает отлично на малую ширине линии, но при больших размерах изображение получается как рисунок ниже. Я знаю, что это связано с углами, но я понятия не имею, как исправить эту проблему. Кто-нибудь знает, как я могу получить чистый удар любого размера?
Звучит неплохо, но что показывать, пока пользователь рисует мышью? – PopKernel
Ну, если бы я был вами, я бы сохранил точки, которые пользователь нарисовал одним ударом, и перетягивать всю линию каждый раз, когда движется мышь. Это должно дать вам результат, который вы пожелаете. – insys
Я пробовал это, но он не работает. Может быть, я делаю это неправильно? Я собираюсь обновить вопрос ... – PopKernel