![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Смотри на курсор
irenf © (2003-06-10 16:58:00)
Есть картинка - треугольник. Как сделать, чтобы одна из его вершин всегда "смотрела" на курсор мышки?
TButton (2003-06-12 11:59:00) [1]
надо найти дирекционный угол основание_треугольника-поинт_курсора
для етого
1.считаем румбический угол.
r=atan((yc-yt)/(xc-xt)); //c - курсор t - треугольник(центр основания или просто центр)
2. перевести румбический в дирекционный (a)
в первой четверти a=r
во второй и третьей - a=r+180
в четвертой - a=r+360
имей дирекционный угол можно поворачивать картинку. (дирекционный отмеряется от вертикального направления по ходу часовой стрелки). действуй. если чо не понял - спрашивай.
MBo (2003-06-11 12:11:00) [2]
>одна из его вершин всегда "смотрела" на курсор
Нужно дать формальное определение этой фразы - например - биссектриса угла A (точнее, дополняющий ее до прямой луч) должна проходить через точку, в которой находится мышь, или что-то подоьное, а дальше - школьная геометрия.
irenf (2003-06-11 11:22:00) [3]
А как вертеть треугольник?
Искать, кри каком повороте расстояние между курсором и данной вершиной наименьшее?
Chieftain (2003-06-10 18:33:00) [4]
По MouseMove будет работать только в пределах формы. Можно сделать двумя способами:
1) По таймеру проверять Mouse.CursorPos
2) Установить Hook на мышу.
Второй вариант несколько посложнее, у меня не хватило нервов заставить работать. Если получится - отпиши :)
MBo (2003-06-10 17:13:00) [5]
по MouseMove вертеть треугольник