Я работаю над программой для рисования и пытаюсь найти лучший способ имитировать поведение «магнита», которое можно найти в таких приложениях, как Omnigraffle.Идея такова: поскольку линия рисуется между двумя объектами (визуальные объекты на экране, а не объекты ООП), когда линия от первого объекта приближается ко второму, «магнит» или «узел» на втором будет подсвечиваться или второйобъект будет выделен.
Я хотел сохранить все экранные объекты в массиве и использовать уведомления для отправки этому массиву позиции конца строки по мере его перемещения.Таким образом, я мог бы заставить каждый объект выполнить свое собственное сравнение и сказать: «Эй, у меня есть узел рядом с линией, думаю, я его зажгу».
Мне также было интересно, будет ли такой же подход, если я захочу иметь два объекта, например, коробки, которые будут слипаться вместе, когда они соприкасаются друг с другом.Таким образом, было бы возможно выстроить прямоугольники с одинаковыми координатами X или Y
Меня не беспокоит выделение или привязка линии к положению узла, мне просто интересноо наилучшем способе реализации части «обнаружения близости краев» этой проблемы.