UIBezierPath
을 사용하여 직육면체 모양을 그리려합니다. 내 그리기 코드는 다음과 같습니다 :베 지어 경로에서 선의 연결을 부드럽게하는 방법은 무엇입니까?
나는 모든에 대해 서로 다른 알파 값을 원했기 때문에 3 개 경로를 생성
UIBezierPath *bpath1 = [UIBezierPath bezierPath];
[bpath1 moveToPoint:CGPointMake(x, y + h * 0.4)];
[bpath1 addLineToPoint:CGPointMake(x, y + h)];
[bpath1 addLineToPoint:CGPointMake(x + w - (w * 0.4), y + h)];
[bpath1 addLineToPoint:CGPointMake(x + w - (w * 0.4), y + h * 0.4)];
[bpath1 closePath];
UIBezierPath *bpath2 = [UIBezierPath bezierPath];
[bpath2 moveToPoint:CGPointMake(x + w * 0.4, y)];
[bpath2 addLineToPoint:CGPointMake(x + w, y)];
[bpath2 addLineToPoint:CGPointMake(x + w - (w * 0.4), y + h * 0.4];
[bpath2 addLineToPoint:CGPointMake(x, y + h * 0.4];
[bpath2 closePath];
UIBezierPath *bpath3 = [UIBezierPath bezierPath];
[bpath3 moveToPoint:CGPointMake(x + w, y)];
[bpath3 addLineToPoint:CGPointMake(x + w, y + h - (h * 0.4))];
[bpath3 addLineToPoint:CGPointMake(x + w - (w * 0.4), y + h)];
[bpath3 addLineToPoint:CGPointMake(x + w - (w * 0.4), y + h * 0.4];
[bpath3 closePath];
((X는, y)는, w)의 크기가 내 UIView
및 (시간의 기원) 통로. 나는 아래입니다 원하는 출력을 가지고 :
하지만, 아래와 같은 모양을 가지고 h
(높이)의 매우 적은 값 놀랍게도
자, 이 모양이 나타나는 값의 수는 거의 없습니다. 매번 렌더링 코드가 동일하므로 베 지어 패스의 이상한 동작을 이해하지 못합니다. 왜 베 지어 경로가이 동작을 보여 주며 이러한 관절을 부드럽게하는 방법이 있습니까?
그래서 miterLimit 값을 계산하는 방법은 무엇입니까? 입력 한 링크에 값을 -10으로 설정하면 문제가 해결되지 않습니다. – blancos