В настоящее время я работаю над разделом программы, которая перемещает мышь по ar c.
Мне даны три точки, которые определяют ar c: начальная точка p1
, промежуточная точка на арке c p2
и конечная точка p3
. Еще мне дали length
ар c. Если length
больше, чем фактическая длина ar c, обозначенного p1
и p3
, то p3
не будет конечной точкой ar c, но мышь продолжит движение в круг, пока он не пройдет расстояние length
.
Я определил центр круга (x, y)
, его радиус r
и angle
развернутый.
Перемещение мышью, я надеюсь разделить angle
на меньшие интервалы, каждый с углом dAngle
и перемещая мышь между его текущим положением и новым положением после перемещения dAngle
. Я имею в виду псевдокод ниже:
for i in range(intervals):
x = center.x + r * cos(i * dAngle)
y = center.y + r * sin(i * dAngle)
Move mouse to (x, y)
Sleep 1
Однако я столкнулся с некоторыми проблемами при попытке параметрического поиска новой точки на ar c.
- Моя мышь не начинается с
p1
, но, как я предполагаю, находится в точке, где линия от мыши к центру и горизонтальная линия покрывают 0 градусов, так как я не учел в параметрах начальный угол . Как определить начальный угол наклона мыши? - Как определить, следует ли вращать по часовой стрелке или против часовой стрелки, т.е.
x = center.x + r * cos(i * dAngle)
или x = center.x - r * cos(i * dAngle)
Если есть более эффективный способ передвижения по ар c предложите пожалуйста.