Re: Найти ближайшие GraphicsPath
От: PVitaliy Украина  
Дата: 30.03.05 07:56
Оценка:
Здравствуйте, 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
Надеюсь это поможет.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.