Ben şu kod:Satır tekrar kendi kendine tekrar katlandığında neden birleştirme yapılmıyor?
- (void)drawRect:(CGRect)rect {
CGContextRef c = UIGraphicsGetCurrentContext();
CGContextSetFillColorWithColor(c, [UIColor blackColor].CGColor);
CGContextFillRect(c, rect);
CGContextSetLineJoin(c, kCGLineJoinRound);
CGContextSetLineCap(c, kCGLineCapRound);
CGContextSetLineWidth(c, 50.0);
CGContextSetStrokeColorWithColor(c, [UIColor redColor].CGColor);
CGContextBeginPath(c);
CGContextMoveToPoint(c, 60, 60);
CGContextAddLineToPoint(c, 60, 250);
CGContextAddLineToPoint(c, 60, 249);
CGContextStrokePath(c);
CGContextSetStrokeColorWithColor(c, [UIColor blueColor].CGColor);
CGContextBeginPath(c);
CGContextMoveToPoint(c, 160, 60);
CGContextAddLineToPoint(c, 160, 250);
CGContextAddLineToPoint(c, 160.01, 249);
CGContextStrokePath(c);
}
Bu aşağıdaki çıktıyı oluşturur: kırmızı şeklin alt kenarı yuvarlak değildir bu iyi bir neden
var mı? Yoksa çizgi tam olarak kendi kendine ikiye katlandığında Çekirdek Grafikteki bir hata mı?
Tabii * bu 'CGContextSetLineCap' var ve burada soru değil, yuvarlanır çizginin * biter. Soru, 'kCGLineJoinRound' ile' CGContextSetLineJoin', yol 180 ° döndüğünde (ancak 179.427 ° gibi bir şey döndürdüğünde) birleştirme işlemini tamamlamamasının nedenidir. – Anomie
Üzgünüz, hat kapağını daha yeni gördüm ve satır eklemeyi gözden kaçırdım. Büyük ihtimalle bir hata bulmuşsunuzdur. KCGLineJoinRound dokümantasyonu, birleştirmelerin yuvarlatılmış olması gerektiğini açıkça belirtmektedir, ancak açık değildir. –
Cevabımı güncelledi. –