Эмуляция движения мыши и клик

  • Автор темы Автор темы arhip1985
  • Дата начала Дата начала

arhip1985

Client
Регистрация
31.10.2011
Сообщения
3 063
Реакции
798
Баллы
113
покопался по темам форума, не нашёл полностью готового или понятного куска
собственно надо кусок кода на си, как я понял, движение из переменных топ1 лефт1 в топ2 лефт2
и клик по топ3 лефт3 (как это сделать наиболее беспалевно)

можно ли организовать движение по элипсу, по окружности?
 
можно ли организовать движение по элипсу, по окружности?
Если задашь математическую функцию движения, то все можно. Хоть движение в форме морской волны (синусоида я думаю подойдет - A*sin(x) для координаты x и B*sin(y) для координаты "y").
 
  • Спасибо
Реакции: arhip1985
Если задашь математическую функцию движения, то все можно. Хоть движение в форме морской волны (синусоида я думаю подойдет - A*sin(x) для координаты x и B*sin(y) для координаты "y").
был бы очень благодарен, если бы кусок кода выложил)
 
был бы очень благодарен, если бы кусок кода выложил)
Вот тут сам пример найдешь для начальной и конечной координаты. А дальше придется додумывать самому. У меня всё время забито заказами.
 
Можно замутить движение мыши по повернутой синусоиде.
Если использовать эти формулы для преобразования обычной синусоиды:

x'=x*cos(A)-y*sin(A)

y'=x*sin(A)+y*cos(A),

где A - угол поворота.

Код:
Развернуть Свернуть Копировать
double x0,y0;//откуда двигаемся
double x1,y1;//координаты обычной синусоиды
double x2,y2;//координаты повернутой синусоиды
double angle;//угол поворота синусоиды
double step,l;//шаг движения и длина синусоиды

angle=3.14/3;l=9;step=0.5;//пример
 
for (x1=0; x1<l*3.14; x1+=step)
{
y1=20*Math.Sin(x1)+1;//наша обычная синусоида (пример)
x2=x1*Math.Cos(angle)-y1*Math.Sin(angle);
y2=x1*Math.Sin(angle)+y1*Math.Cos(angle);

instance.ActiveTab.MouseMove((int)x0,(int)y0);
instance.ActiveTab.MouseMove((int)x2, (int)y2, true);
x0=x2;y0=y2;
  
}

костыли костылями) но надо думать в этом направлении)
 

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)