过去几周,我一直在尝试解决我遇到的三角学问题。我需要制作一个Java.awt Graphics图像,使用USB游戏杆的输入x和y绘制该图像,使其朝着当前所面对的方向移动,可以旋转,但是我需要了解如何制作moveForward()
函数。
更多背景是我当前要使用操纵杆x轴旋转图像。我尝试使用x = speed * sin(angle)
和y = speed * cos(angle)
。该操纵杆也是由Logitech制造的,我正在尝试制作FRC(首次机器人竞赛)机器人模拟器。
基本上是下面的图像显示了我的想法。我要机器人向上,向下,向左和向右旋转,并且在任何给定的旋转下,机器人都可以朝该旋转方向移动。
[如果有人可以帮助,那将是惊人的。
请注意...同样,我正在执行此操作[[in Java,并且我已经尝试修复了2周。
如果需要更多代码,请发表评论
方向向量。此向量用于跟踪对象的标题。
旋转对象:使用新角度仅rotate矢量。要移动对象:将向量乘以当前速度(可以恒定)。最后,将矢量添加到对象的位置以获取新位置。像这样:
newPosition = direction.multiply(speed).add(position)
然后在新位置和旋转位置绘制对象。
将向量与标量相乘只是v.x*scalar
和v.y*scalar
。加法只是v.x+a and
v.y + b`。因此:
newPosition.x = direction.x * speed + position.x;
newPosision.y = direction.y * speed + position.y;