$k1 - смещение окружности от полученного центра
$k2 - коэффициент для получения радиуса
$k3 - смещение точек на окружности
меняя эти коэффициенты будем получать каждый раз разные движения.
// круговое движение мышкой function circle_run_mouse($full_emul = false) { global $browser, $mouse; // коэффициент для центра окружности $k1 = rand(-200, 200); // коэффициент для радиуса окружности $k2 = rand(3, 5); // коэффициент для точек на окружности $k3 = rand(-20, 20); // получаем ширину и высоту окна браузера $page_width = $browser->get_window_width(); $page_height = $browser->get_window_height(); // вычисляем координаты центра окружности $x = $page_width/2 + $k1; $y = $page_height/2 + $k1; // вычисляем радиус окружности if ($page_width < $page_height) { $radius = $page_width/$k2; } else { $radius = $page_height/$k2; } // проверка если радиус больше ширины или длины окна while (($radius >= $page_width/2-abs($k1)) or ($radius >= $page_height/2-abs($k1))) { $radius -= 10; } $radius = floor($radius); // чертим if ($full_emul) { // двигаемся по полученным точкам for ($angle = 0; $angle <= 360; $angle += 5, $k3 = rand(-10, 10)) { $x1 = floor($x + cos(deg2rad($angle)) * $radius) + $k3; $y1 = floor($y + sin(deg2rad($angle)) * $radius) + $k3; // двигаем реальную мышь $mouse->move($x1, $y1, false, 0, 5); } } else { for ($angle = 0; $angle <= 360; $angle += 5, $k3 = rand(-10, 10)) { $x1 = floor($x + cos(deg2rad($angle)) * $radius) + $k3; $y1 = floor($y + sin(deg2rad($angle)) * $radius) + $k3; // передаём только событие движения мышью $mouse->send_move($x1, $y, true); } } }