![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | 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;![]() |
| Этот пользователь сказал Спасибо Bargest за это полезное сообщение: | ||
Speech (08.09.2013)
| ||
|
#3
|
||||
|
||||
|
Bargest, спасибо
![]() Жаль только не до конца разобрался в той строке. Но это уже по дню... |