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

问题描述 投票:1回答:1

过去几周,我一直在尝试解决我遇到的三角学问题。我需要制作一个Java.awt Graphics图像,使用USB游戏杆的输入x和y绘制该图像,使其朝着当前所面对的方向移动,可以旋转,但是我需要了解如何制作moveForward()函数。

更多背景是我当前要使用操纵杆x轴旋转图像。我尝试使用x = speed * sin(angle)y = speed * cos(angle)。该操纵杆也是由Logitech制造的,我正在尝试制作FRC(首次机器人竞赛)机器人模拟器。

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

Ideal Image Function

[如果有人可以帮助,那将是惊人的。

请注意...同样,我正在执行此操作[[in Java,并且我已经尝试修复了2周。

如果需要更多代码,请发表评论
java animation math awt trigonometry
1个回答
0
投票
用于这类问题的一般方法是使用

方向向量。此向量用于跟踪对象的标题。

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

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

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

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


旁注:

将向量与标量相乘只是v.x*scalarv.y*scalar。加法只是v.x+a and v.y + b`。因此:

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

© www.soinside.com 2019 - 2024. All rights reserved.