Я пытаюсь сделать прямоугольник, используя UIBezierPath
. Я применил два разных способа сделать это. Кроме того, я увеличил ширину хода до 25 пикселей.В чем разница между закрытием пути безье с помощью функции closePath и его закрытием вручную?
Первый метод: Используя closePath
UIBezierPath *bpath = [UIBezierPath bezierPath];
[bpath moveToPoint:CGPointMake(x, y)];
[bpath addLineToPoint:CGPointMake(x + w, y)];
[bpath addLineToPoint:CGPointMake(x + w, y + h)];
[bpath addLineToPoint:CGPointMake(x, y + h)];
[bpath closePath];
Выход:
Второй метод: Закрытие путь вручную
UIBezierPath *bpath = [UIBezierPath bezierPath];
[bpath moveToPoint:CGPointMake(x, y)];
[bpath addLineToPoint:CGPointMake(x + w, y)];
[bpath addLineToPoint:CGPointMake(x + w, y + h)];
[bpath addLineToPoint:CGPointMake(x, y + h)];
[bpath addLineToPoint:CGPointMake(x, y)];
Выход:
В документации closePath
он говорит This method closes the current subpath by creating a line segment between the first and last points in the subpath. This method subsequently updates the current point to the end of the newly created line segment, which is also the first point in the now closed subpath.
А во втором методе я создаю отрезок между первой и последней точек. Итак, почему во втором методе прямоугольник не полностью поглажен?
Примечание: Разница между этими методами видна только при значительном увеличении ширины хода.