gpt4 book ai didi

java - 使用加速度计和陀螺仪移动鼠标光标

转载 作者:行者123 更新时间:2023-12-01 19:21:09 24 4
gpt4 key购买 nike

希望你能帮助我!

我想用陀螺仪和加速计的值来控制我的电脑光标。所以基本上当我移动传感器时,光标应该移动。我使用了 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);
}


}

我的问题:

我现在如何控制光标?你有什么想法吗?

我认为,您需要鼠标光标的最后位置,然后获取传感器的当前位置并更改鼠标位置。但我怎样才能写出我的值(value)观呢?

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

我还发现了thisthis问题。也许它会像那样工作。但我编程时间不长,不太明白。

最佳答案

如果我很好地理解你的问题,你正在尝试用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());

关于java - 使用加速度计和陀螺仪移动鼠标光标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59352757/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com