2011-10-09 2 views
0

3 점 연결에 UIBezierpath를 그리면 어떻게 될까요? 수식/알고리즘이 있어야한다는 것을 알고 있지만, 검색 중이므로 찾을 수 없습니다. 누군가가 3 점을 통과하는 곡선을 그리는 코드로 나를 도울 수 있습니까? 코드없이 수식을 제공하면 도움이 될 것입니다. 이해하기 쉽습니다. 시작 = 시작점, cp1 = 첫 번째 제어점, cp2 = 두 번째 제어점, 끝 = 종점. 이것은 불행하게도 할 일이 간단하지 않다 미리3 점을 기준으로 베 지어 곡선을 그립니 까?

답변

1

에서

덕분에 가능하다면, 그래서 내가 (거기에있는, 날 믿어) 당신을위한 방정식을 해결하는 코드 주위를 검색 할 것입니다.

당신이해야 할 일은 당신의 요점에 따라 방정식을 도출하는 것입니다. 가장 가능성있는 방정식은 2 차 방정식이므로 y = ax^2 + bx + c가됩니다. 세 점을 사용하여 x와 y를 수식에 각각 연결합니다. 그런 다음 함수를 지역화하여 a, b 및 c에서 값을 찾을 수 있습니다. 일단 그 점들을 찾으면, 당신은 3 점에 대한 완전한 방정식을가집니다.

이것은 단순한 수학에 사용할 수있는 내부 방법이있는 것처럼 보이지만 (수학적 배경은 물리학이므로 총을 뛰어 넘어 수학으로 바로 넘어갔습니다.) 수학적으로 순수하게 수학적으로 풀 수있는 방법입니다. 문서를 검색하기 전에). UIBezierPath Class Reference에서는 원하는 효과를 얻으려면 - (void)addCurveToPoint:(CGPoint)endPoint controlPoint1:(CGPoint)controlPoint1 controlPoint2:(CGPoint)controlPoint2 또는 - (void)addQuadCurveToPoint:(CGPoint)endPoint controlPoint:(CGPoint)controlPoint을 사용할 수 있어야합니다. 후자는 위에서 설명한 방정식을 풀 수있는 방법입니다.

관련 문제