Реализация касания методов к кривой, нарисованной кривой Безье - PullRequest
0 голосов
/ 21 ноября 2011

Как реализовать прикосновения к кривым, которые рисуются кривыми Безье в iPad.

1 Ответ

0 голосов
/ 22 ноября 2011

Вы можете использовать метод containsPoint: UIBezierPath, чтобы определить, находится ли касание в пределах кривой. Однако это работает, только если путь закрытого типа, например, круг или прямоугольник.

Одна вещь, которую я никогда не проверял, это то, что путь неявным образом закрыт невидимой линией от начальной точки до конечной точки. Как и в 3 сторонах многоугольника можно обнаружить попадание в 4 стороны, когда 4-й стороны не существует, кроме как в вашем воображении.

В случае, когда кривая представляет собой один штрих (как в программе рисования), вам придется искусственно расширять штрих, чтобы обнаружить ваше прикосновение. Один из способов добиться этого - запустить касательные с каждого конца и нарисовать параллельную линию одинаковой формы вдоль кривой, которую большинство векторных программ делают, когда вы запрашиваете «расширение линии / обводки», тогда вы можете обнаружить попадание в этом расширенном обводке. Толщина вашего расширенного удара будет определять, насколько точным должно быть касание.

...