我的方程式或转换有什么问题?

What is wrong with my equation or conversions?

R (in feet) = (velocity (in ft/s))^2 / g (which is 9.8 m/s^2) * sin(2theta).

我使用像这样的网站 https://www.ajdesigner.com/phpprojectilemotion/range_equation.php#ajscroll 检查了各种输入,以检查我的代码是否给出了正确的答案,但事实并非如此,我也不知道为什么。任何简单的解决方案?下面是:

#include <iostream>
#include <cmath>

using namespace std;

const double GRAVITY_MPS = 9.8;
const double METERS = 3.28084;


int main() {

    double v = 0.0, degrees = 0.0;

    cout << "Enter the velocity (mi/hr) and cannon angle (degrees): \n";
    cin >> v >> degrees;

    double v2 = 0.0;
    v2 = v * 5280.0 / 3600.0;

    double radians = degrees * M_PI / 180.0;

    double r = (pow(v2,2.0) / GRAVITY_MPS) * sin((2.0 * radians));

    double r2 = r * METERS;

    cout << "Yikes travels " << r2 << " feet.";
    return 0;
}

你的 v0 不能以英尺为单位,因为重力以米为单位。 将 5280.0 更改为 1609.3(从 mi 到 m)并且有效。

r的值有单位(ft/s)2 / (m/s2) == (ft2/s2) / (m/s2) ==英尺2/米。然后 r2 的单位为 ft2/m * ft/m 导致单位为 ft3 / m2.

您需要 r2 的乘数倒数,即 m/ft:

double r2 = r * 0.3048;   // meters / foot