Как реализовать редактор кривых Photoshop в UIKit

#ios #uikit #core-graphics #quartz-graphics #bezier

#iOS #uikit #ядро-графика #quartz-графика #безье

Вопрос:

Я знаком с UIBezierPath и соответствующими подпрограммами CG, но ни одна из них, похоже, не рисует тот же тип пути, что и то, что я вижу в Photoshop и т.д.

Как бы это сделать? Я просто говорю об пользовательском интерфейсе — позволяя пользователю перетаскивать точки.

Пример кривой с пятью точками

Пример Java, который я нашел, находится здесь:http://www.cse.unsw.edu.au /~lambert/splines/natcubic.html

Ответ №1:

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

Взгляните на эту статью, в ней объясняется, как вычислить контрольные точки на основе узлов, которые у вас есть на кривой.

Комментарии:

1. Я думаю, моя главная проблема заключалась в том, где разместить контрольные точки. Это не фактические точки, как показано, поскольку это конечные точки.

2. Ну, вот простой пример приложения для Mac, из которого, я думаю, вы можете почерпнуть идею: cocoawithlove.com/2008/07 /…

3. Спасибо. Я проверил это несколько дней назад … все еще не мог понять, как разместить контрольные точки, чтобы получить такую же кривизну.