Java 如何使图形对象朝其面向的方向移动

Java How to make a graphics object move in its facing direction

在过去的几周里,我一直在努力解决我遇到的一个三角函数问题。我需要制作一个 Java.awt 我用 USB 操纵杆的输入 x 和 y 绘制的图形图像朝它当前面对的方向移动,我得到了旋转但我需要找出如何制作 moveForward() 函数。

还有一点背景是目前我想用摇杆x轴来转动图像。我尝试使用 x = speed * sin(angle)y = speed * cos(angle)。摇杆也是罗技的,我正在尝试做一个FRC(First Robotics Competition)机器人模拟器

基本上下图显示了我的想法。我希望 机器人可以向上、向下、向左和向右移动 ,并且 在任何给定的旋转方向上它都可以朝着该旋转方向移动

如果有人能提供帮助那就太好了。

请注意...我在 Java 中再次这样做,我已经尝试修复这个问题 2 周了。

If more code is needed please comment

解决这类问题的一般方法是使用方向向量。此矢量用于跟踪对象的航向。

要旋转对象:只需 rotate 使用新角度的矢量。

要移动对象:将向量乘以当前速度(可以是常数)。最后将矢量添加到对象的位置以获得新位置。像这样:

newPosition = direction.multiply(speed).add(position)

然后在新的位置和旋转方向绘制对象。


旁注:

将向量与标量相乘只是 v.x*scalarv.y*scalar。添加只是 v.x+a andv.y+b`。所以:

newPosition.x = direction.x * speed + position.x;
newPosision.y = direction.y * speed + position.y;