Здравствуйте, Ulvred, Вы писали:
U>Имеется карта некоторой области, на которой отмечены водоёмы. Водоёмы заданы наборами координат точек своих береговых линий. U>То есть имеется N массивов точек (каждая точка задаётся своими координатами X и Y). Каждый массив описывает координаты точек береговой линии водоёма. U>На той же карте распложена ещё одна точка (назовём её точкой А). U>Береговые линии имеют неправильную форму и могут быть как выпуклые так и невыпуклые. Координаты точек задаются вещественными числами с плавающей запятой. U>Карта достаточно большая — каждая береговая линия задаётся несколькими тысячами точек. U>Необходимо найти кратчайшее до береговой линии ближайшего водоёма. Расстояние меряется по прямой от точки А до ближайшей к ней точки каждого водоёма. U>Вопрос: как решить данную задачу? Измерение расстояний до каждой точки каждой береговой линии не годится т.к. точек очень много.
Скорее всего водоемы не меняются во времени, а зато поиск, возможно, надо осуществлять постоянно для разных точек A. В связи с этим имеет смысл построить заранее что-то типа диаграммы Вороного для множества точек береговых линий, такая диаграмма даст сразу для любой точки A ближайшую к ней точку ближайшего водоема.