【问题标题】:Unity3D Math calculation issuesUnity3D数学计算问题
【发布时间】:2014-01-29 01:16:11
【问题描述】:

我不太擅长数学和重新编写以下公式。

40x^2 + 360x 

结果应该如下

x = 1 结果应该是 400
x = 2 结果应该是 900
x = 3 结果应该是 1,600
x = 4 结果应该是 2,100
x = 5 结果应该是 2,800

result = 40 * (int)Mathf.Pow((float)x, 2f) + (360 * x)

x = 1 我得到 400
x = 2 我得到 880
x = 3 我得到 1440
...等

我在这里做错了什么?

【问题讨论】:

  • 与其使用Mathf.Pow(),不如使用x*x 进行x平方...我会担心浮点版本的浮点精度/截断问题。

标签: math unity3d


【解决方案1】:

看来您从代码中得到的答案是正确的。

例如,在 x = 2 的热门答案中,900 不可​​能作为答案。因为; 360 * 2 = 720。要得到 900,您需要添加 180,这不是 40 的任何倍数,最接近的是 160。将其添加到 720 等于 880,例如代码中的答案。

【讨论】:

  • 谢谢,我用我需要的东西走了一条不同的路。我没有进行计算,而是创建了一个字典作为查找。
猜你喜欢
  • 2011-12-08
  • 1970-01-01
  • 1970-01-01
  • 2010-12-21
  • 2012-12-04
  • 1970-01-01
  • 1970-01-01
  • 2010-11-14
  • 1970-01-01
相关资源
最近更新 更多