Рисование с использованием CGContextRef - PullRequest
4 голосов
/ 03 января 2012

Я пытаюсь создать приложение, в которое я могу написать.Я прогрессировал в этом, используя CGContextRef.Я написал следующий код.

previousPoint2 = previousPoint1;
previousPoint1 = [touch previousLocationInView:m_secondaryDrawingImgeView];
currentPoint = [touch locationInView:m_secondaryDrawingImgeView];
// calculate mid point
CGPoint mid1 = [self midPoint:previousPoint1 :previousPoint2]; 
CGPoint mid2 =[self midPoint:currentPoint :previousPoint1];
UIGraphicsBeginImageContext(m_secondaryDrawingImgeView.frame.size);
[m_secondaryDrawingImgeView.image drawInRect:
               CGRectMake(0, 0, m_secondaryDrawingImgeView.frame.size.width,
                               m_secondaryDrawingImgeView.frame.size.height)];
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextMoveToPoint(context, mid1.x, mid1.y);
// Use QuadCurve is the key
CGContextAddQuadCurveToPoint(context,
        previousPoint1.x, previousPoint1.y, mid2.x, mid2.y); 
// NSMutableArray *arr = [NSMutableArray arrayWithObjects:mid1, nil]
//  NSLog(@"%@",color);
CGContextSetStrokeColorWithColor(context, color.CGColor);
CGContextSetLineCap(context, kCGLineCapRound);
CGContextSetLineWidth(context,m_width);
CGContextStrokePath(context);
m_secondaryDrawingImgeView.image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

Когда я устанавливаю непрозрачность для своего цвета, в строке отображаются точки, которые я хочу удалить.

Это правильный путь, по которому я иду?Можно ли как-нибудь удалить эти точки?

Прикрепление изображений для большей наглядности.То, что происходит после написания этого кода, это изображение-1, а то, что я хочу, это изображение-2

enter image description here enter image description here

1 Ответ

7 голосов
/ 04 января 2012

Наконец я взломал его. Вы должны установить режим смешивания для этого ниже код

 CGContextSetBlendMode(UIGraphicsGetCurrentContext(), kCGBlendModeCopy);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...