【发布时间】:2018-11-30 17:43:55
【问题描述】:
应该使用线性方程计算发射的弹丸相对于时间(100ms 的步长)的坐标,并输出线性数字,但如果我用 CalcMe.com(数学工具)绘制这个方程,它会生成抛物线图
InVel = Double.parseDouble(jTextField1.getText());
g = Double.parseDouble(jTextField8.getText());
y = 1;
while(y >= -1) {
t += 100;
x = InVel * TimeUnit.MILLISECONDS.toSeconds(t) * Math.cos(45);
y = InVel * TimeUnit.MILLISECONDS.toSeconds(t) * Math.sin(45) - (1 / 2) * g * Math.pow(TimeUnit.MILLISECONDS.toSeconds(t), 2);
//System.out.print(Double.toString(x));
//System.out.printf(" ");
System.out.print(Double.toString(y));
System.out.printf("%n");
}
jTextField6.setText(Double.toString(x));
代码在java中
g 是常数 (9.8)
并且 invel 是由用户给出的,所以它也是常数
g 是重力和 invel 弹丸的初始速度
等式是:x=invel*time*cos(45)和y=invel*time*sin(45)-(1/2)*g*t^2
谁能帮帮我?
【问题讨论】:
-
您的问题标题令人困惑,您不知道为什么what,为什么它会像您想要的那样工作,或者为什么它会做其他事情?无论如何
1 / 2= 0 因为它是整数除法。 -
不,所有变量都是双倍的,所以 0.5
-
1和2是整数,因此1/2为 0 - 进一步计算是否为 double 并不重要 -
表达式 (1 / 2) 仍然是整数,所以结果会像 Pshemo 所说的那样为 0。
-
为了消除混淆,您可以通过添加 Pshemo
1.0中所述的小数或像1d那样附加一个“d”来声明双重文字。要么给你一个价值'1'的双倍
标签: java math plot coordinates projectile