Как да преместите плавно курсора на мишката с Java?

Опитвам се да използвам класа Robot, за да преместя показалеца на мишката въз основа на показанията на акселерометъра, които получавам от моето Android устройство чрез bluetooth. Проблемът е, че курсорът на мишката се движи на стъпки. Имам нужда от начин да го движа плавно, като физическо плъзгане на показалеца. Ето какво имам досега

@Override
public void serialEvent(SerialPortEvent serialPortEvent) {
        if(serialPortEvent.getEventType() == SerialPortEvent.DATA_AVAILABLE) {
            try {
                String inputLine = input.readLine();
                String[] values = inputLine.split(",");
                int x = Integer.parseInt(values[0])*(-1);
                int y = Integer.parseInt(values[1])*(-1);
                mouse.moveMouse(x, y);
                //System.out.println(inputLine);
            } catch (IOException e) {
                System.err.println(e.toString());
            }
        }
}

Тук показалецът на мишката се движи на по-малки или по-големи стъпки в зависимост от това колко е наклонен телефонът. Но искам да се движи по-бързо или по-бавно.


person Rashed Doha    schedule 09.04.2015    source източник
comment
Каква е стойността на values? Може да губите точност, когато анализирате до int? Предполагам, че зависи от това дали moveMouse(x, y) приема само 'int's като параметри   -  person Ian2thedv    schedule 10.04.2015


Отговори (1)


Това, което търсите, се нарича интерполация и вероятно има куп резултати в Google за това. Но основното е, че трябва да разберете кои позиции са между вашите начална и крайна позиция и да се движите през тях с течение на времето.

Като алтернатива изглежда, че можете просто да намалите въведените стойности.

person Kevin Workman    schedule 09.04.2015