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
。我应该放下什么呢?我只是试图让罪恶平方。
答案 0 :(得分:0)
首先 - Math.pow(x,2.0)等于sin * sin,第二种方法应该更有效率。
当谈到你的问题时 - 变量" sin"你想在第二个Math.pow()中使用吗?
示例代码:
// 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);
答案 1 :(得分:0)
您当前代码的问题在于您尝试访问名为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);