Я попробовал некоторый код для вычисления контрольных точек между начальной и конечной точками безье-пути с помощью сенсорного перемещения, добавления линий к безье-пути и заливки цветом, чтобы придать эффект плоского пера, как в Instagram, но не смог получить плавные изогнутые линии быстрым движением пальца.
из приведенного ниже кода я могу получить наклонные линии, не сглаженные, как Instagram в изображение
if (_bezierPath == nil || _brushType == BrushTypeNeon) {
_bezierPath = [UIBezierPath new];
}
[_bezierPath moveToPoint:(CGPoint){self.controlPoint1.x + self.startWidth/2, self.controlPoint1.y - self.startWidth/2}];
[_bezierPath addLineToPoint:(CGPoint){self.startPoint.x + self.startWidth/2, self.startPoint.y - self.startWidth/2}];
[_bezierPath addLineToPoint:(CGPoint){self.startPoint.x - self.startWidth/2, self.startPoint.y + self.startWidth/2}];
[_bezierPath addLineToPoint:(CGPoint){self.controlPoint1.x - self.startWidth/2, self.controlPoint1.y + self.startWidth/2}];
[_bezierPath addLineToPoint:(CGPoint){self.controlPoint1.x + self.startWidth/2, self.controlPoint1.y - self.startWidth/2}];
[_bezierPath moveToPoint:(CGPoint){self.controlPoint2.x + self.startWidth/2, self.controlPoint2.y - self.startWidth/2}];
[_bezierPath addLineToPoint:(CGPoint){self.controlPoint1.x + self.startWidth/2, self.controlPoint1.y - self.startWidth/2}];
[_bezierPath addLineToPoint:(CGPoint){self.controlPoint1.x - self.startWidth/2, self.controlPoint1.y + self.startWidth/2}];
[_bezierPath addLineToPoint:(CGPoint){self.controlPoint2.x - self.startWidth/2, self.controlPoint2.y + self.startWidth/2}];
[_bezierPath addLineToPoint:(CGPoint){self.controlPoint2.x + self.startWidth/2, self.controlPoint2.y - self.startWidth/2}];
[_bezierPath moveToPoint:(CGPoint){self.endPoint.x + self.startWidth/2, self.endPoint.y - self.startWidth/2}];
[_bezierPath addLineToPoint:(CGPoint){self.controlPoint2.x + self.startWidth/2, self.controlPoint2.y - self.startWidth/2}];
[_bezierPath addLineToPoint:(CGPoint){self.controlPoint2.x - self.startWidth/2, self.controlPoint2.y + self.startWidth/2}];
[_bezierPath addLineToPoint:(CGPoint){self.endPoint.x - self.startWidth/2, self.endPoint.y + self.startWidth/2}];
[_bezierPath addLineToPoint:(CGPoint){self.endPoint.x + self.startWidth/2, self.endPoint.y - self.startWidth/2}];
_bezierPath.lineCapStyle = kCGLineCapRound;
_bezierPath.lineJoinStyle = kCGLineJoinRound;
_bezierPath.lineWidth = self.startWidth;
_bezierPath.flatness = 0.3;
[self.strokeColor set];
[_bezierPath fillWithBlendMode:kCGBlendModeNormal alpha:1.f];
Я ожидаю эффект гладкой изогнутой плоской перо, как Instagramс сенсорным движением. как это
спасибо за внимание, пожалуйста, укажите, если любое предложение или образец кода:)