2013-07-08 14 views
0

Я пытаюсь нарисовать L-образную форму, код работает, но линии не имеют правильной ширины и имеют 5 пикселей для вертикальных линий, а некоторые из них 3 пикселя толщиной, несмотря на то, что я явно говорю об этом используйте 3 пикселя в качестве ширины строки, что я делаю неправильно? вот мой код:CGContext дает неожиданную ширину строки

CGContextRef ctx = UIGraphicsGetCurrentContext(); 
CGContextClearRect(ctx, rect); 
CGContextAddPath(ctx, pathi); 
CGContextSetStrokeColorWithColor(ctx, [UIColor redColor].CGColor); 
CGContextSetLineWidth(ctx, 3.0); 
CGContextSetLineCap(ctx, kCGLineCapRound); 
CGContextSetShouldAntialias(ctx, NO); 
CGContextStrokePath(ctx); 

Я уже рассчитал путь «pathi» Путь работает нормально.

+0

включают в себя то, как вы вычислили путь –

+0

Я создаю простой путь при создании любого произвольного изображения с помощью CGPathRef. – fibnochi

+0

посмотрим код пожалуйста :) –

ответ

2

Линии на самом деле не толстые, половина линий обрезается при рисовании. Вы должны применять отступы, равные половине ширины (ваш случай, 3/2 => 1,5), потому что рисунок всегда начинается с середины предоставленных точек.