сравнивая прямоугольники - PullRequest
0 голосов
/ 13 декабря 2010

Кто-нибудь знает, какие издержки имеют CGRectContainsRect и CGRectIntersectsRect?

Я пытаюсь отследить и протестировать жест пользователя и обнаружил, что мне, вероятно, придется использовать комбинацию обоих, но не уверен ввлияние.

Вообразите сетку из 5 квадратов, и вы хотите проверить, нарисовал ли пользователь линию от квадрата 1 до 2.

Easy, CGRectContainsRect позволяет мне узнать, рисовал ли он только вквадраты 1 и 2.

Если они нарисовали, скажем, квадраты 1, 2 и 3, тот же самый тест вернул бы false, поскольку CGRectContainsRect сказал бы, что НЕТ.

OK no, допустим, вы хотите проверить на рисованиев квадратах 1,2 и 3, и пользователь рисует только в квадратах 1 и 2, CGRectContainsRect вернет YES, потому что правильно, так что штрих пользователя находится в пределах квадратов 1,2 и 3 ........, но на самом деле не в квадрате 3так что ложное чтение получается!

1 Ответ

1 голос
/ 13 декабря 2010

Вы можете перебирать каждый из 5 квадратов, проверяя CGRectIntersectsRect на каждом. Для большого массива квадратов это может стать крайне неэффективным, но мне кажется, что это лучший способ думать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...