2011-09-02 4 views
0

UIBezierPath를 사용하여 사용자가 빠르게 움직이는 경우 사용자가 터치하는 위치를 그릴 때 나는 때때로 삼각형의 끝과 같은 어려운 점을 얻습니다. 이걸 일으키는 어떤 단서가 있니? 아니면 어떻게 해결할 수 있습니까?UIBezierPath가 날카로운 모서리를 나타냅니다.

touchesBegan/Moved/Ended를 사용하여 점을 캡쳐하고이를 UIBezierPaths의 NSArray에 배치합니다.

답변

2

이름에도 불구하고 UIBezierPath은 곡선을 그리는 것이 아닙니다. 실제로, 디폴트로는 touchesBegan 등으로 반환 된 좌표를 addLineToPoint 메소드로 전달하는 것일뿐입니다.

단순히 모든 터치 좌표를 UIBezierPath에 직접 입력하는 대신 화면에 손가락을 빠르게 움직일 때 발생하는 이러한 선들을 피하기 위해 먼저이를 삽입해야합니다. 베 지어 커브가 작동하고 스플라인 보간이 수행되는 방법에 대한 지식이 필요하기는하지만 너무 어렵지 않습니다.

좀 더 쉬운 방법을 찾고 있다면 다음과 같이 몇 가지 오픈 소스 라이브러리가 있습니다. http://cocoacontrols.com/platforms/ios/controls/smooth-line-view

관련 문제