Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Граф


Kaban ©   (2002-10-01 12:14:00) 

Рисую граф, соответственно вершины и ребра.
Надо чтобы при наведении мышью вершины и ребра,
выделялись другим цветом. С вершинами все понятно.
Но вот с ребрами я чего то торможу.

Первое, что пришло в голову в цикле
проверять, находится ли текущее положение
мыши между вершинами графа и вычислять угол между текущим положением мыши и каждым ребром:
Cos(Alpha) = a*b/ (|a||b|)
если около 1 то наклоны совпадают

но если вершин и ребер много, то вычисления становятся слишком громоздкими

Нет ли более простого решения?


MBo   (2002-10-01 12:43:00) [1]

при построении графа создавать список ребер, сразу же рассчитывая и записывая в него коэфф. уравнения прямой и ограничители отрезка (xi,xj, например)
при двмжении мыши пробегать по списку, проверяя, удовлетворяют ли ее коорд. уравнению и находится ли X в нужных пределах


Наверх

Титульная страница Поиск, карта сайта Написать письмо