- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我发现了一个有趣的项目,该项目需要计算射击子弹的角度才能击中移动的物体/目标。此功能应提供五个参数。这是参数列表:
`xP` - last known x position of the target
`yP` - last known y position of the target
`xV` - last known x velocity of the target
`yV` - last known y velocity of the target
`bulletS` - the speed of the bullet
xP yP xV yV bulletS
5 5 0 1 3
4 4 1 0 2
5 5 0 -1 3
import java.lang.*;
public class Problem2 {
public static void main(String[] args) {
// Function takes arguments from the parameters table.
System.out.println(calculateShotAngle(10,10,1,0,2));
}
static double calculateShotAngle(float xP, float yP, float xV, float yV, float pSpeed) {
// Function equation to calculate distance
double distance = Math.pow(Math.sqrt(Math.pow((xV-xP),2) + Math.pow((yV-yP), 2)),2);
return distance;
}
}
最佳答案
这个问题很复杂,但是我将尝试做出一个描述性的答案。
我们需要建立一些常数,例如引力(目前仅引力):
double gravity = 0.98;
// Add more constants if needed
`xPT` - last known x position of the target
`yPT` - last known y position of the target
`xVT` - last known x velocity of the target
`yVT` - last known y velocity of the target
t
的位置。
Vx
是沿x轴的速度(您需要进行计算)
Vxo
是沿x轴的初始速度(
xVT
)
Vy
是沿y轴的速度(您需要进行计算)
Vyo
是沿y轴的初始速度(
yVT
)
g
是由于重力引起的加速度
t
是花费的时间
t
,然后递增。 (播放初始值并递增以获得所需的输出)
t
计算目标位置后,如果在时间
t
可以到达目标位置,则给定位置和速度,然后计算子弹的可能发射角;如果时间可以到达目标,则计算角度答案就是答案,如果不增加
t
`xPB` - last known x position of the bullet
`yPB` - last known y position of the bullet
`bulletS` - the speed of the bullet
v
是初始启动速度(这是
bulletS
)
g
是重力常数
x
是目标在时间
t
处的x位置(这是
xPT
)
y
是目标在
t
时间的y位置(这是
yPT
)
t
能否到达目标位置
u
是初始启动速度(这是
bulletS
)
g
是重力常数
θ
是发射角度
Ux
是子弹的初始x速度
Uy
是子弹的初始y速度
t
的子弹位置。
x
是项目符号在时间
t
的x位置
y
是子弹在时间
t
处的y位置
Vx
是沿x轴的速度(您需要进行计算)
Vxo
是沿x轴的初始速度(
Ux
)
Vy
是沿y轴的速度(您需要进行计算)
Vyo
是沿y轴的初始速度(
Uy
)
g
是由于重力引起的加速度
t
是花费的时间
xPB
-项目符号的最后已知x位置
yPB
-项目符号的最后已知y位置
`xPB` - last known x position of the bullet
`yPB` - last known y position of the bullet
`xPT` - last known x position of the target
`yPT` - last known y position of the target
xPB
等于
xPT
并且
yPB
等于
yPT
,则子弹将在时间
t
和发射角度
θ
击中目标。如果不是,则增加时间
t
并执行第1部分直到第4部分。
static double calculateShotAngle(
double xPT, double yPT, double xVT, double yVT,
double xPB, double yPB, double bulletS) {
double gravity = 0.98;
double angle = null;
double time = 1; // change this value if needed (try smaller increments if after a single increment the bullet's position will pass the target's position)
double xPTOriginal = xPt; // Save the initial x position of target
double yPTOriginal = yPt; // Save the initial y position of target
while (true) {
// do Part 1;
// do Part 2;
// do Part 3;
// below code is Part 4
if (hasBeenHit(xPT, yPT, xPB, yPB)) {
break;
} else {
t++; // increment t
// Revert the initial position of target
xPt = xPTOriginal;
yPt = yPTOriginal;
}
}
return angle;
}
// Method used to check if bullet hits the target
// Method assumes that bullet and target only occupies a point (1 of axis x and 1 of axis y)
static boolean hasBeenHit(double xPT, double yPT, double xPB, double yPB) {
return xPT == xPB && yPT == yPB;
}
关于javascript - 如何计算射击子弹以击中移动目标的 Angular ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54917375/
我遇到了一个问题,我无法将网络请求发送到我创建的 Docker 容器。我已经公开了正确的端口,所以我不确定这里可能有哪些其他问题。 我有一台服务器在容器中运行 alice在 localhost:100
在下面最后一行的方法中,我总是遇到异常: System.OverflowException: Value was either too large or too small for an Int32.
我正在关注 realpython article about running Flask on Ubuntu .建议在文章中检查 nginx 已通过导航到 http://localhost:8000/
给定一个条件,我想搜索一个元素列表并返回第一个达到条件的元素和前一个元素。 在 C/C++ 中,这很容易: int i = 0; for(;;i++) if (arr[i] == 0) break;
我正在使用 Firebase Firestore 我想从数据库中删除数据..删除数据工作正常,但我的进度对话框卡住了。我想我必须使用工作线程,但我不知道如何使用。 db = FirebaseFire
我按照 this page 上的说明进行操作创建推送通知。我之前实际上已经做过一次并且能够让它工作(几周前),花了一些时间,我想我现在才再次做这个教程作为复习,出于某种原因,我可以'甚至获取代码以点击
我在大学学习Java,这是我的任务。任务是创建一个由颜色方块组成的x x y网格,每个网格在单独的线程中运行,并且每k ms要么将其颜色更改为随机的颜色,要么对其邻居的颜色求平均。 现在,如果我创建一
我有一台服务器,它不断地从自身获得随机命中,IP 读取为 127.0.0.1 .我知道有各种各样的程序可以做到这一点,但服务器是带有 sendmail 和 monit 的最低限度的 LAMP 服务器。
我正在使用 sqlite 数据库并且我在这个要点中声明了模型 https://gist.github.com/mmahesh/7245561 我添加了一个带有事务管理器的模型实例作为 with tra
我是一名优秀的程序员,十分优秀!