double maxHeight = 0.0;
velocity = v;
angle = theta;
maxHeight = Math.pow(velocity, 2.0);
maxHeight = Math.pow(sin, 2.0);
maxHeight *= Math.sin(angle) / (2 * gravity);
我正在尝试获取Math.pow(sin, 2.0);
。要求我声明sin
。我应该为此付出什么?我只是想使罪恶平方。
首先-Math.pow(x,2.0)等于sin * sin,第二种方法应该更有效率。
[回答您的问题-您要在第二个Math.pow()中使用的变量“ sin”是否存在?
示例代码:
// assuming that "v", "theta" and "gravity" are known variables
double sin = Math.sin(theta);
double maxHeight = (v * v * sin * sin) / (gravity * 2);
更正后的原始代码:
double maxHeight = 0.0;
velocity = v;
angle = theta;
maxHeight = Math.pow(velocity, 2.0);
double sin = Math.sin(angle);
maxHeight *= Math.pow(sin, 2.0) / (2 * gravity);
当前代码的问题是,您正在尝试访问名为sin
的变量,但该变量不存在。由于您是从Java开始的,所以让我们重新开始。
您要计算h = v² sin²( θ ) / ( 2 g )
。我们已经有v
和theta
。
首先,分子为v² sin²(θ)
。这意味着我们需要计算v²
。然后,我们需要计算sin(θ)
并将结果平方。然后,我们需要将这两个数字相乘。输入代码,我们有:
double vSquared = Math.pow(v, 2);
double sinTheta = Math.sin(theta);
double sinThetaSquared = Math.pow(sinTheta, 2);
double numerator = vSquared * sinThetaSquared;
分母就是2*g
,所以我们有:
double maxHeight = numerator / (2 * gravity);
如果将其简化为单个表达式,我们得出:
//test data
double v = 1.0;
double theta = 1.5;
double gravity = 9.8;
double maxHeight = Math.pow(v, 2) * Math.pow(Math.sin(theta), 2) / (2 * gravity);