2011-03-17 6 views
3

자바 로봇 클래스는 마치 실제 실제 마우스가 움직 인 것처럼 마우스를 움직일 수있게합니다.자바 로봇 마우스 이동 속도 설정?

그러나 인간적으로 (즉 즉각적이지는 않지만) Point1에서 Point2로 마우스를 이동하려면 어떻게해야합니까? 일명, 어떻게 움직임의 속도를 설정합니까?

Robot 클래스에서 이러한 속도를 사용할 수 없으면 마우스를 즉시 움직일 수만 있다면 사람의 마우스 움직임을 모방하는 데 "알고리즘"의 어떤 종류를 사용해야합니까? 특정 증가 속도로 픽셀을 마우스 픽셀 이동해야합니까?

답변

0

Robot 클래스에는 지점 간 이동을 제어하는 ​​데 사용할 수있는 지연 (...) 메서드가 있습니다. 원하는 것을 결정하기 위해 몇 가지 다른 알고리즘을 사용해보십시오.

start_x을 고려 어디 당신이 종료하고자하는 마우스가 시작되고 end_x :

+0

에 대한 동일 지연 방법은 로봇을 잔다. 어떻게 이것이 마우스의 움직임을 느리게할까요? 또는 마우스 픽셀을 특정 증가분으로 픽셀 단위로 움직이는 자체 알고리즘을 만들어야한다는 것을 암시하고 있습니까? – Tom

+0

예 마우스를 픽셀 (또는 2 개) 이동시킨 다음 지연하여 다음 픽셀로 이동하는 루프를 만들어야합니다. 그래서 자신 만의 알고리즘을 만들 수 있습니다. 이동하려는 픽셀 수와 지연 시간을 결정합니다. – camickr

+0

어떤 종류의 알고리즘이 인도적인 것인지 대답하지 않습니다. – Tom

4

여기 여기 꽤 좋은 방법입니다. 도움이 y

for (int i=0; i<100; i++){ 
    int mov_x = ((end_x * i)/100) + (start_x*(100-i)/100); 
    int mov_y = ((end_y * i)/100) + (start_y*(100-i)/100); 
    robot.mouseMove(mov_x,mov_y); 
    robot.delay(10); 
} 

희망 ...

+1

괄호 밖으로 나눗셈을 이동하면 조금 더 빠르고 정확하게 할 수 있습니다. 위의 알고리즘은 (1,1)에서 (1,1)을 거쳐 (0, 0)로 이동합니다. 또 하나의 문제 : 99 %의 속도로 진행됩니다. – maaartinus