【问题标题】:Time to turn 180 degrees是时候转180度了
【发布时间】:2011-11-24 07:08:41
【问题描述】:

我有一艘宇宙飞船,我想计算转180 度需要多长时间。这是我目前转船的代码:

.msngFacingDegrees = .msngFacingDegrees + .ROTATION_RATE * TV.TimeElapsed

我当前的.ROTATION_RATE0.15,但它会改变。

我试过了:

Math.Ceiling(.ROTATION_RATE * TV.TimeElapsed / 180)

但总是得到1 的答案。请帮忙。

【问题讨论】:

  • 您使用的数据类型是什么?
  • 试试这个:Math.Ceiling(.ROTATION_RATE * TV.TimeElapsed / 180.0) ... 注意.0 添加到硬编码值 180。180 单独被视为一个整数,它将您的十进制计算偏斜为 int...跨度>
  • 为什么在计算中包含 TV.TimeElapsed?这不是您要解决的未知数吗?

标签: vb.net


【解决方案1】:

解释为什么你总是得到 1:

Math.Ceiling 只是向上舍入到下一个整数,因此您的总和内容必须始终为

重新排列你的总和得到TV.TimeElapsed = 180 * (1/.ROTATION_Rate)ROTATION_Rate 为 0.15,我们知道 TV.TimeElapsed 需要达到 1200 才能让您的整体函数返回 > 1。

您是否总是查看小于此阈值的经过时间?

进一步建议您的总和应该是多少更难 - 如果没有更多上下文,它并不完全清楚。

【讨论】:

  • 即使我将代码改成:Math.Ceiling(.ROTATION_RATE / 180.0),我仍然只能得到1。有没有更好的方法来计算旋转180度需要多长时间?跨度>
  • 你把它翻了 - Jon 建议 Math.Ceiling(180.0 / RotationRate)。这是一个简单的代数。
猜你喜欢
  • 2011-08-29
  • 1970-01-01
  • 1970-01-01
  • 2020-05-20
  • 2011-09-20
  • 1970-01-01
  • 1970-01-01
  • 2017-11-13
  • 1970-01-01
相关资源
最近更新 更多