2013-06-03 3 views
0

Я уже знаю, как нарисовать линию между двумя точками, но линия кажется не такой гладкой. Что я могу сделать, чтобы сделать его более плавным? Спасибо вам.Как сгладить линию между двумя точками в iOS?

- (void)drawLineFrom:(CGPoint)start To:(CGPoint)end { 
// begin image context 
UIGraphicsBeginImageContext(self.imageLineView.frame.size); 

// define image rect for drawing 
[self.imageLineView.image drawInRect:CGRectMake(0, 0, imageLineView.frame.size.width, imageLineView.frame.size.height)]; 

// set line properties 
CGContextSetLineCap(UIGraphicsGetCurrentContext(), kCGLineCapRound); 
CGContextSetLineWidth(UIGraphicsGetCurrentContext(), 2.0f); 
CGContextSetRGBStrokeColor(UIGraphicsGetCurrentContext(), 1.0f, .0f, .0f, 1.0); 

// move context to start point 
CGContextMoveToPoint(UIGraphicsGetCurrentContext(), start.x, start.y); 

// define path to end point 
CGContextAddLineToPoint(UIGraphicsGetCurrentContext(), end.x, end.y); 

// stroke path 
CGContextStrokePath(UIGraphicsGetCurrentContext()); 

// flush context to be sure all drawing operations were processed 
CGContextFlush(UIGraphicsGetCurrentContext()); 

// get UIImage from context and pass it to our image view 
imageLineView.image = UIGraphicsGetImageFromCurrentImageContext(); 

// end image context 
UIGraphicsEndImageContext(); 
} 

enter image description here

+0

Что вы подразумеваете под "негладкой"? У вас есть два момента, вы получите прямую линию между ними. Что в этом гладко? – Abizern

+1

попробуйте это http://tonyngo.net/2011/09/smooth-line-drawing-in-ios/ – Liolik

+0

@Abizern: линия немного неровная. –

ответ

3

Вы можете нарисовать плавную линию, используя Безье Path.

Здесь вы можете получить дополнительную информацию. Bézier Paths

0

Попробуйте включить функцию сглаживания. вам нужно установить ключ UIViewEdgeAntialiasing в YES в вашем Info.plist.

Смежные вопросы