我的方程式或转换有什么问题?
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
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