Доброго времени суток еще раз.
Нужно передвигать мышку по заданной области экрана. Делаю прямолинейно:
Код:
{процедура перемещения курсора мышки в области заданных координат
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 пикселей)

Однако такой способ не сильно мне подходит, ибо нужно немного участить движения мышки (удаление шага в 20 пикселей это не выход, долго объяснять придется почему). Единственное что на ум пришло - это сделать движение в виде амплитуды или синусоида:

Кто то сталкивался с таким? Есть алгоритм как найти точки такой амплитуды? А если есть и готовый код - это вообще здорово.
Знаю что тут нужна математика, но это я изучал лет 15 назад и никогда в жизни не сталкивался, так что почти все забыл.