【问题标题】:Convert a large int to a float between 0.0f and 1.0f将大整数转换为 0.0f 和 1.0f 之间的浮点数
【发布时间】:2015-06-19 04:46:36
【问题描述】:

我正在做一个项目,我在 x 和 z 上有一个从 0 到 500 的窗格,但我需要将该坐标(从 0 到 500)转换为 0.0 到 1.0 范围内的浮点数因为我正在使用的某些功能需要它。

我被困在如何取轴位置(比如说,3475x3475)并将其在平面上的相对位置从0.0f 更改为1.0f

(我尝试以任何程序员都可以理解的方式编写此代码,而不是使用 Unity 术语。如果您是 Unity 程序员并且希望使用该术语更好地理解它,请告诉我,我会重新编写它)

【问题讨论】:

  • 如果您尝试将 0 到 500 范围内的值 x 转换为 0 到 1 之间的浮点数,您可以将 x 除以 500(即 x / 500)
  • 假设您的翻译中的关系是线性的。对于x轴,如果x1是整数值,为什么不能解出x2呢?:(x1 / 500) = (x2 / 1.0)

标签: math unity3d numbers


【解决方案1】:

您可以将 0 到 500 之间的数字除以 500,例如scaled_x = x / 500.0f。根据x 的语言和类型,您需要除以500500.0f。如果您使用的语言像 C 一样具有整数除法,并且如果 x 是整数,则 x / 500 将为零,除非 x 为 500,但如果您使用 x/500.0f,您将在 @ 之间得到一个浮点数987654329@ 和 1.0f(假设 x 介于 0 和 500 之间)。这当然是假设你想要一个线性映射,例如0 映射到 0,100 映射到 0.2,250 映射到 0.5,依此类推。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-08
    • 1970-01-01
    • 2013-11-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多