В чем разница между закрытием пути Безье с помощью функции closePath и его закрытием вручную?

Я пытаюсь сделать прямоугольник используяUIBezierPath, Я принял два разных способа нарисовать это. Также я увеличил ширину обводки до 25 пикселей.

Первый способ: использование 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.

И во втором методе я создаю отрезок между первой и последней точками. Итак, почему во втором методе прямоугольник не полностью обводится?

Примечание. Разница между этими методами видна только при значительном увеличении ширины штриха.

Ответы на вопрос(2)

Ваш ответ на вопрос