Я пытаюсь переместить мышь в движение кривой Безье в Pyautogui, чтобы имитировать больше человеческого движения, как показано здесь:
Внутри pyautogui есть некоторые функции поворота/ослабления, но ни один из них не представляет собой движение типа кривой Безье. Я создал небольшой script, чтобы вычислить случайные места, в которые он попал, прежде чем, в конечном счете, достигнет цели.
По умолчанию линейный путь "Робот":
К сожалению, каждый пункт назначения временно останавливается.
import pyautogui
import time
import random
print "Randomized Mouse Started."
destx = 444;
desty = 631;
x, y = pyautogui.position() # Current Position
moves = random.randint(2,4)
pixelsx = destx-x
pixelsy = desty-y
if moves >= 4:
moves = random.randint(2,4)
avgpixelsx = pixelsx/moves
avgpixelsy = pixelsy/moves
print "Pixels to be moved X: ", pixelsx," Y: ",pixelsy, "Number of mouse movements: ", moves, "Avg Move X: ", avgpixelsx, " Y: ", avgpixelsy
while moves > 0:
offsetx = (avgpixelsx+random.randint(-8, random.randint(5,10)));
offsety = (avgpixelsy+random.randint(-8, random.randint(5,10)));
print x + offsetx, y + offsety, moves
pyautogui.moveTo(x + offsetx, y + offsety, duration=0.2)
moves = moves-1
avgpixelsx = pixelsx / moves
avgpixelsy = pixelsy / moves
Информация:
- Windows 10
- Python 2.7
- Желая использовать другие библиотеки, версия Python при необходимости
Я видел этот пост: случайные движения мыши python
но не может понять, как определить позицию "старт и стоп". Ответ довольно близок к тому, что я ищу.
Любые идеи о том, как это сделать?