有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

带有加速度计和陀螺仪的java移动鼠标光标

希望你能帮助我

我想用陀螺仪和加速计的值来控制我的电脑光标。所以基本上当我移动传感器时,光标应该被移动。我用的是MPU-6050芯片和ESP32

如何获取光标的位置:

public static void main (String[] args){

        for(int i = 0; i<= 1000000; i++) {

        PointerInfo info = MouseInfo.getPointerInfo();

        Point location = info.getLocation();

        System.out.println("x="+ location.x + " y=" + location.y);

}

如何从传感器获取值:

 public SensorData(JsonObject data) {
    //accerlation accelerometer
    ax = data.get("ax").asDouble()/ASENSETIFITY;
    ay = data.get("ay").asDouble()/ASENSETIFITY;
    az = data.get("az").asDouble()/ASENSETIFITY;

    //temperature 
    temp = data.get("t").asDouble()/340.00+36.53;

    //gyroscope
    gx = data.get("gx").asDouble()/GSENSETIFITY;
    gy = data.get("gy").asDouble()/GSENSETIFITY;
    gz = data.get("gz").asDouble()/GSENSETIFITY;

}

public String toString() {
    return "ax: " + Double.toString(ax) +", ay: " + Double.toString(ay)
        +", az: " + Double.toString(az) +", temp: " + Double.toString(temp)
        +", gx: " + Double.toString(gx) +", gy: " + Double.toString(gy)
        +", gz: " + Double.toString(gz);

}

到目前为止我得到的是:

package mouse;

import java.awt.AWTException;

import java.awt.Robot;
import Connection.SensorData;

public class MouseMoving {
Robot robot;

public MouseMoving(){
    try {
        robot = new Robot();
    } catch (AWTException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}


    public static void verarbeite(SensorData data){

    System.out.print("Deine Maus befindet sich da:");
    System.out.println(data);

    //robot.mouseMove(1,1);
}


}   

我的问题是:

我现在如何控制光标?你有主意吗

我想,你需要鼠标光标的最后一个位置,然后得到传感器的当前位置并改变鼠标位置。但我该如何用我的价值观来写这篇文章呢

我找到了this网站,当传感器移动时,3个物体在pc上旋转。但这不是用Java写的,我不理解他的解决方案

我还发现了thisthis问题。也许会这样。但我编程没那么久,也不懂


共 (1) 个答案

  1. # 1 楼答案

    如果我理解你的问题,你是在用Java移动鼠标光标。要实现这一点,可以使用Robot类,它是一个MouseMove(int x, int y)方法

    默认情况下,它将光标定位在主屏幕上。如果有多屏幕设置,则必须传递GraphicsDevice对象以指示应使用哪个屏幕

    例如,将光标向右移动10个像素

    PointerInfo pointerInfo = MouseInfo.getPointerInfo();
    Point mouseLocation = pointerInfo.getLocation();
    GraphicsDevice graphicsDevice = pointerInfo.getDevice();
    new Robot(graphicsDevice).MouseMove(mouseLocation.getX()+10, mouseLocation.getY());