我正在尝试编写一个简单的 c++ 程序,一旦它到达特定点,它就会输出对象的当前高度。我想要完成的目标是,你有一个从不同位置开始的物体,a 在随机速度下移动,并附有重力。如果球撞到墙壁或其他物体,它应该向后移动,没有能量损失,但仍会因重力而继续下落。一旦球达到特定高度,输出该值。
现在,我现在要做的就是检查我的球是否超出了我的宽度范围。但是对于我的生活,我不明白为什么我在底部的最后一个 if 语句不会调用。
我错过/做一些非常愚蠢的事情吗?
int _tmain(int argc, _TCHAR* argv[])
{
float velocity;
float height, targetHeight;
float gravity;
float time;
float angle;
float width;
float move;
float distance;
gravity = 9.80f;
time = 0;
distance = 0;
cout << "Set Height\n";
cin >> height;
cout << "Set target height\n";
cin >> targetHeight;
cout << "Set Angle ( 0 - 90 ): \n";
cin >> angle;
angle *= 3.14 * 180; // convert to radians
cout << "Set velocity (0 - 100): \n";
cin >> velocity;
cout << "Set Play field Width: \n";
cin >> width;
while( height >= target )
{
time++;
distance += velocity * cos(angle) * time;
height += (velocity * sin(angle) * time) - (gravity * pow(time, 2) ) / 2;
}
if( distance == width)
{
cout << "You've hit the wall\n";
}
return 0;
}