какой алгоритм я должен использовать, чтобы изменить / изменить кривые - PullRequest
0 голосов
/ 31 декабря 2011

Я сделал приложение, которое рисует ряд кривых, используя UIBezierPath. Сейчас я пытаюсь реализовать функциональность модификации в нем. Чтобы изменить конкретную кривую, я могу нарисовать все кривые снова; Я еще не реализовал это. Но я думаю, что этот алгоритм не будет очень эффективным, когда число кривых увеличивается, потому что мне нужно хранить все точки в массиве, и мне нужно запустить цикл, чтобы рисовать каждую кривую каждый раз, когда я иду на модификацию.

Я ищу более эффективный алгоритм. Будет полезно, если кто-нибудь предоставит пример кода.

Ответы [ 2 ]

0 голосов
/ 31 декабря 2011

Вы можете представить отдельные кривые как UIBezierPath s и нарисовать их отдельно, создав один CAShapeLayer для каждой кривой и присвоив свойству path слоя формы соответствующее свойство CGPath пути Безье.Чтобы обновить отдельную кривую, вам просто нужно манипулировать одним контуром Безье и соответствующим свойством слоев формы path.

0 голосов
/ 31 декабря 2011

Перерисуйте кривую, пока у вас не возникнет проблема производительности, измеренная с помощью инструментов.Если это произойдет снова, используйте инструменты, чтобы точно определить лучший способ оптимизации.

Легко потратить время на оптимизацию, которая никогда не нужна.Изначально гораздо лучше потратить это время и подумать на создание «чистого» кода.

...