![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
![]() Доброго времени суток еще раз.
Нужно передвигать мышку по заданной области экрана. Делаю прямолинейно: Код:
{процедура перемещения курсора мышки в области заданных координат X, Y - начальные координаты области StopX, StopY - конечные координаты области} procedure MoveMouse(X, Y, StopX, StopY: Integer); var X1: Integer; begin while Y <= StopY-1 do begin for X1:= X to StopX-1 do begin SetCursorPos(X1+20, Y); end; Inc(Y, 20); end; end; ![]() Однако такой способ не сильно мне подходит, ибо нужно немного участить движения мышки (удаление шага в 20 пикселей это не выход, долго объяснять придется почему). Единственное что на ум пришло - это сделать движение в виде амплитуды или синусоида: ![]() Кто то сталкивался с таким? Есть алгоритм как найти точки такой амплитуды? А если есть и готовый код - это вообще здорово. Знаю что тут нужна математика, но это я изучал лет 15 назад и никогда в жизни не сталкивался, так что почти все забыл. Последний раз редактировалось Speech, 08.09.2013 в 01:02. |
#2
|
||||
|
||||
![]() Цитата:
Код:
for X1:= X to StopX-1 do begin Y1 := y + round(sin(x1 * 0.1) * 10); // по Y Будет y-10..y+10; 0.1 для растяжения по оси X SetCursorPos(X1, Y1); end; y := y + 20; ![]() jmp $ ; Happy End! The Cake Is A Lie. |
Этот пользователь сказал Спасибо Bargest за это полезное сообщение: | ||
Speech (08.09.2013)
|
#3
|
||||
|
||||
![]() Bargest, спасибо
![]() Жаль только не до конца разобрался в той строке. Но это уже по дню... |