Java如何使图形对象朝着它的方向移动
在过去的几周里,我一直在努力解决一个三角学问题。我需要制作一个Java.awt图形图像,我使用USB操纵杆上的输入x和y绘制该图像,使其朝着当前的方向移动,我得到了旋转,但我需要了解如何使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(第一届机器人竞赛)机器人模拟器 基本上,下图显示了我的想法。我希望机器人能上下左右移动,并
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;
听起来好像有用,但我如何使用向量呢?我以前从来没有用过它们,我总是用数组。向量数学并不难,但它的成功之处在于它更容易推理,而且你不必处理复杂的三角学。只需跟踪方向向量。检查一些例子谢谢,我知道如何处理向量,我应该让它可能会工作。