OGeek|极客世界-中国程序员成长平台

标题: objective-c - objective-c : How do i smoothen the brush like a real brush? [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-13 09:46
标题: objective-c - objective-c : How do i smoothen the brush like a real brush?

我正在构建一个画笔应用程序,它几乎完成了,我所做的只是一个基本的画笔/绘图工具。我想给它一种更像画笔的感觉,因为在我当前的输出中它有角度,而且看起来不像是真正的画笔墨水。

这是我的代码:

- (void)touchesMovedNSSet *)touches withEventUIEvent *)event {
    touchSwiped = YES;
    UITouch *touch = [touches anyObject];   
    currentTouch = [touch locationInView:self.view];
    currentTouch.y -= 20;
    UIGraphicsBeginImageContext(self.view.frame.size);
    [touchDraw.image drawInRect:CGRectMake(0, 0, touchDraw.frame.size.width, touchDraw.frame.size.height)];
    CGContextSetLineCap(UIGraphicsGetCurrentContext(), kCGLineCapRound);
    CGContextSetLineWidth(UIGraphicsGetCurrentContext(), 35.0);
    CGContextSetRGBStrokeColor(UIGraphicsGetCurrentContext(), redAmt, blueAmt, greenAmt, 1.0);
    CGContextBeginPath(UIGraphicsGetCurrentContext());
    CGContextMoveToPoint(UIGraphicsGetCurrentContext(), endingPoint.x, endingPoint.y);
    CGContextAddLineToPoint(UIGraphicsGetCurrentContext(), currentTouch.x, currentTouch.y);
    CGContextStrokePath(UIGraphicsGetCurrentContext());
    touchDraw.image = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();

    endingPoint = currentTouch;

    touchMoved++;

    if (touchMoved == 10) {
        touchMoved = 0;
    }
}



Best Answer-推荐答案


我不知道您是否能够在没有获得您描述的角度的情况下为此使用触摸事件。事件的分辨率不够离散。

OpenGL 似乎更合适。查看 Apple 的 GLPaint sample code举个例子。

关于objective-c - objective-c : How do i smoothen the brush like a real brush?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8117003/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://sqlite.in/) Powered by Discuz! X3.4