Java如何使图形对象朝着它的方向移动

Java如何使图形对象朝着它的方向移动,java,animation,math,awt,trigonometry,Java,Animation,Math,Awt,Trigonometry,在过去的几周里,我一直在努力解决一个三角学问题。我需要制作一个Java.awt图形图像,我使用USB操纵杆上的输入x和y绘制该图像,使其朝着当前的方向移动,我得到了旋转,但我需要了解如何使moveForward()函数 还有一点背景是,目前我想使用操纵杆x轴来旋转图像。我试着使用x=speed*sin(angle)和y=speed*cos(angle)。操纵杆也是由罗技公司制造的,我正在尝试制作一个FRC(第一届机器人竞赛)机器人模拟器 基本上,下图显示了我的想法。我希望机器人能上下左右移动,并

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

还有一点背景是,目前我想使用操纵杆x轴来旋转图像。我试着使用
x=speed*sin(angle)
y=speed*cos(angle)
。操纵杆也是由罗技公司制造的,我正在尝试制作一个FRC(第一届机器人竞赛)机器人模拟器

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

如果有人能帮上忙,那就太棒了

请注意…我再次用Java做这个,我已经尝试了两周

如果需要更多代码,请评论


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

旋转对象:仅使用新角度旋转矢量

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

newPosition=方向。乘(速度)。加(位置)

然后在新位置绘制对象并旋转


旁注:

将向量与标量相乘就是
v.x*标量
v.y*标量
。添加只是
v.x+a和
v.y+b`。因此:

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

听起来好像有用,但我如何使用向量呢?我以前从来没有用过它们,我总是用数组。向量数学并不难,但它的成功之处在于它更容易推理,而且你不必处理复杂的三角学。只需跟踪方向向量。检查一些例子谢谢,我知道如何处理向量,我应该让它可能会工作。