Вы ищете алгоритм определения местоположения.Это не слишком сложно, но это не достаточно просто, чтобы объяснить здесь.В этой книге есть хорошая глава: http://www.cs.uu.nl/geobook/
Когда я вернусь домой, я получу свой экземпляр книги и посмотрю, смогу ли я попробовать в любом случае.Там просто много деталей, о которых вы должны знать.Все сводится к построению DCEL ввода и поддержанию структуры данных по мере добавления или удаления линий.Любой запрос с координатами мыши просто вернет внутренний полжедрок компонента, а в частности, он содержит указатели на все внутренние компоненты, что и является именно тем, о чем вы просите.
Хотя есть одна вещь:что вам нужно знать пересечения во входных данных (потому что вы не можете построить трапецеидальную карту, если у вас есть пересекающиеся линии), и если вы можете сойти с рук (т.е. входных данных достаточно мало сегментов), я настоятельно рекомендую вам просто использовать наивныйАлгоритм O (n²) (простой, кодируемый и тестируемый менее чем за 1 час).Алгоритм O (n log n) занимает несколько дней, чтобы закодировать и использовать умную и очень нетривиальную структуру данных для статуса.Это, однако, также упоминается в книге, поэтому, если вы чувствуете, что у вас есть задача, у вас есть две причины, чтобы купить ее.Это действительно хорошая книга по геометрическим проблемам в целом, поэтому только по этой причине любой программист, интересующийся алгоритмами и структурами данных, должен иметь копию.