Здравствуйте, AGo, Вы писали:
AGo>Привет все..
AGo>есть массив GraphicsPath
AGo>Надо найти те элементы GraphicsPath из массива,
AGo>которые являются ближайшими соседями (сверу слева справа снизу) к указателю мыши
AGo>Люди выручайте
AGo>надо срочно
Попробуй так:
вначале все координаты точек GraphicsPath пересчитываем как будто они лежат в системе координат с центром в точке где у нас указатель мыши. Это делается так: X1new = X1 — X0; Y1new = Y1 — Y0, где X0 и Y0 координаты мыши, а X1 и Y1 -- координаты первой точки пути (и так для всех точек). Потом разделяем все точки на те которые лежат слева, сверху, справа, снизу по следующему признаку:
слева лежат те точки у которых: Xnew < 0 и abs(Ynew) < Xnew
справа лежат те точки у которых: Xnew > 0 и abs(Ynew) < Xnew
сверху лежат те точки у которых: abs(Xnew) < Ynew и Ynew > 0
снизу лежат те точки у которых: abs(Xnew) < Ynew и Ynew < 0
потом надо посчитать растояние каждой точки к центру, это
D = sqrt(Xnew*Xnew + Ynew*Ynew)
и выбрать минимальные. Работает такой расчет достаточно бысто чтобы вести его полностью на событие MouseMove
Надеюсь это поможет.