Нарисуйте кривую Безье из трех точек? - PullRequest
0 голосов
/ 10 октября 2011

Как бы я нарисовал UIBezierpath для соединения трех точек. Я знаю, что должна быть формула / алгоритм, но я искал и не могу найти его. Может ли кто-нибудь помочь мне с кодом для рисования изогнутой линии Безье через три точки. Если вы дадите формулу без кода, это также будет полезно. Просто так легко понять: начало = начальная точка, cp1 = первая контрольная точка, cp2 = вторая контрольная точка, конец = конечная точка.

Заранее спасибо

1 Ответ

1 голос
/ 10 октября 2011

Это, к сожалению, не самая простая вещь, которую можно сделать, поэтому, если возможно, я бы искал какой-то код, который решает уравнения для вас (которые там, поверьте мне).сказал, что вам нужно сделать, это вывести уравнение на основе ваших очков.Наиболее вероятное уравнение будет квадратичным, поэтому у вас будет y = ax ^ 2 + bx + c.Используя ваши три точки, вы включите x и y из каждой в формулу.Затем вы можете локализовать функции, чтобы найти значения из a, b и c.Как только вы найдете эти точки, у вас будет полное уравнение для ваших трех точек.

Именно так вы решите это самостоятельно в чисто математической форме, хотя, похоже, есть некоторые внутренние методы, которые вы можете использовать длявещи (мой опыт - физика, поэтому я бросил оружие и просто пошел к математике, прежде чем искать документацию).В UIBezierPath Reference Class вы должны иметь возможность использовать либо - (void)addCurveToPoint:(CGPoint)endPoint controlPoint1:(CGPoint)controlPoint1 controlPoint2:(CGPoint)controlPoint2, либо - (void)addQuadCurveToPoint:(CGPoint)endPoint controlPoint:(CGPoint)controlPoint, чтобы получить желаемый эффект.Последний - метод, который решит уравнение, которое я объяснил выше.

...