如何在UIImageView上绘制喷枪?

kir*_*ran 4 iphone

我是一名从事iphone绘画应用的初学者.

为我的iPhone应用程序添加新工具称为喷枪...

这将喷涂在UIImageView上.任何人都可以帮助我如何使用它.

kir*_*ran 7

Logic for air brush.........

- (UIBezierPath *)pathFromPoint:(CGPoint)start toPoint:(CGPoint)end {

    CGFloat lineWidth=10;
    redrawRect = CGRectMake(end.x-lineWidth,end.y-lineWidth,lineWidth*2,lineWidth*2);
    UIBezierPath *bezierPath = [UIBezierPath bezierPath];
    UIBezierPath *circle = [UIBezierPath bezierPathWithOvalInRect:redrawRect];
    NSInteger i, x, y;

    NSInteger modNumber =4*(int)lineWidth;
    for (i = 0; i < (lineWidth*lineWidth)/2; i++) {
        do {
            x = (random() % modNumber)+end.x - 2*lineWidth;
            y = (random() % modNumber)+end.y - 2*lineWidth;
        } while (![circle containsPoint:CGPointMake(x,y)]);

        [bezierPath appendPath:[UIBezierPath bezierPathWithRect:CGRectMake(x,y,0.5,0.5)]];
    }
    return bezierPath;
}

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
    UITouch *touch = [touches anyObject];   
    currentPoint = [touch locationInView:self.view];
    currentPoint.y -=20;
    [self drawCircle];
}
-(void)drawCircle{
    UIGraphicsBeginImageContext(self.drawImage.frame.size);
    [drawImage.image drawInRect:CGRectMake(0,0, drawImage.frame.size.width, drawImage.frame.size.height)]; //originally self.frame.size.width, self.frame.size.height)];
    CGContextSetLineWidth(UIGraphicsGetCurrentContext(),10);
    CGContextSetRGBStrokeColor(UIGraphicsGetCurrentContext(), 0.0, 0.0, 0.0, 1.0);
    UIBezierPath *path=[self pathFromPoint:currentPoint 
                                   toPoint:currentPoint];
    [path stroke];
    lastPoint = currentPoint;
    CGContextStrokePath(UIGraphicsGetCurrentContext());
    CGContextFlush(UIGraphicsGetCurrentContext());
    drawImage.image = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
}
Run Code Online (Sandbox Code Playgroud)