Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 求一个弹跳球移动的总距离_Vb.net - Fatal编程技术网

Vb.net 求一个弹跳球移动的总距离

Vb.net 求一个弹跳球移动的总距离,vb.net,Vb.net,我正在写一个程序,计算出一个球在给定初始高度和恢复系数的情况下下落了多少次。我很难计算出如何追踪球反弹的总距离,这是我到目前为止得到的 Option Strict On Public Class Form1 Private Sub btnAnalyze_Click(sender As Object, e As EventArgs) Handles btnAnalyze.Click Dim Coef = CDbl(txtRes.Text) Dim Height = CDbl(txt

我正在写一个程序,计算出一个球在给定初始高度和恢复系数的情况下下落了多少次。我很难计算出如何追踪球反弹的总距离,这是我到目前为止得到的

Option Strict On
Public Class Form1
Private Sub btnAnalyze_Click(sender As Object, e As EventArgs) Handles btnAnalyze.Click
    Dim Coef = CDbl(txtRes.Text)
    Dim Height = CDbl(txtHeight.Text)
    Dim NHeight As Double = Coef * Height
    Dim Count As Integer = 0
    Dim Distance As Double
    Dim NDistance As Double
    Do While NHeight > 0.1
        NHeight = NHeight * Coef
        Distance = Height + 2 * NHeight
        Count = Count + 1
    Loop
    lblHeight.Text = CStr(Distance)
    lblBounce.Text = CStr(Count + 1)
End Sub
End Class

您只是将
Distance
设置为循环中当前反弹的距离。试着在每个循环中求和;屈服:

...
Do While NHeight > 0.1
    NHeight = NHeight * Coef
    Distance = Distance + (Height + 2 * NHeight)
    Count = Count + 1
Loop
...

别忘了在循环外初始化
Distance

为什么不打印循环每次迭代的距离,并验证它是否正确?我会创建一个变量来包含总距离,并将各个反弹距离添加到其中……你应该更清楚地解释你想要的是什么。“总距离”非常模糊,可以用不同的方式理解(即使在考虑2D情况的情况下)。甚至“恢复系数”也可以以不同的方式理解/应用()。你的问题越不清楚,回答的时间就越长(而且越有可能被否决/关闭)。@varocarbas真的很好奇在这种情况下,总距离意味着什么?我可能很天真,但这个问题对我来说似乎相当清楚…@Mattflows我不知道也许是因为我在物理学和建模不同现象方面或多或少有坚实的背景,不能凭直觉看到简单的解释。但是当你告诉我一个球弹跳的时候,我看到了一个非常困难的问题(->思考3D)。通过将其减少到2D,您将拥有X和Y运动;例如:在时间0时,它将在x=0和y=0中;在x=1和y=0.5中的时间1,以及在x=2和y=0中的时间2。我在那里看到了相当复杂的行为。你在x轴上移动了一定的距离,在x轴上,在两个y=0之间,在y轴上,在y轴上,全局/平均值,等等…我似乎无法让它工作,我比它应该的值少了11。谢谢你选择了正确的路线。你是不是打算考虑向上和向下的旅程?不相信您在当前算法中已经计算了这两个参数。。。也不知道为什么你要在高度上增加两个,然后在高度上减少?对我来说,将NHeight乘以2,然后再加上距离会更有意义。是的,我如何解释这一点是NHeight变量的两倍。你可能需要使用一些括号来确保操作符按照你期望的顺序生效?关于操作顺序的好建议,我意识到我必须将距离计算移到右上方。非常感谢。