将大整数转换为介于 0.0f 和 1.0f 之间的浮点数
Convert a large int to a float between 0.0f and 1.0f
我正在做一个项目,我有一个在 x 和 z 上从 0 到 500 的窗格,但我需要将该坐标(从 0 到 500)转换为 0.0 范围内的浮点数到 1.0 英寸,因为我正在使用的某些功能需要它。
我被困在如何获取轴位置(可以说是 3475x3475 之类的东西)并将其在平面上的相对位置从 0.0f
更改为 1.0f
(我试图以任何程序员都能理解的方式来写这篇文章,而不是使用 Unity 术语。如果您是 Unity 程序员并且希望用该术语更好地理解它,请告诉我,我会重新-写吧)
您可以将 0 到 500 之间的数字除以 500,例如scaled_x = x / 500.0f
。根据 x
的语言和类型,您需要除以 500
或 500.0f
。如果你使用像 C 这样有整数除法的语言,并且如果 x
是一个整数,那么 x / 500
将是零,除非 x
是 500,但是如果你这样做 x/500.0f
比你会得到 0.0f
和 1.0f
之间的浮点数(假设 x 介于 0 和 500 之间)。这当然是假设你想要一个线性映射,例如0映射到0,100映射到0.2,250映射到0.5等等。
我正在做一个项目,我有一个在 x 和 z 上从 0 到 500 的窗格,但我需要将该坐标(从 0 到 500)转换为 0.0 范围内的浮点数到 1.0 英寸,因为我正在使用的某些功能需要它。
我被困在如何获取轴位置(可以说是 3475x3475 之类的东西)并将其在平面上的相对位置从 0.0f
更改为 1.0f
(我试图以任何程序员都能理解的方式来写这篇文章,而不是使用 Unity 术语。如果您是 Unity 程序员并且希望用该术语更好地理解它,请告诉我,我会重新-写吧)
您可以将 0 到 500 之间的数字除以 500,例如scaled_x = x / 500.0f
。根据 x
的语言和类型,您需要除以 500
或 500.0f
。如果你使用像 C 这样有整数除法的语言,并且如果 x
是一个整数,那么 x / 500
将是零,除非 x
是 500,但是如果你这样做 x/500.0f
比你会得到 0.0f
和 1.0f
之间的浮点数(假设 x 介于 0 和 500 之间)。这当然是假设你想要一个线性映射,例如0映射到0,100映射到0.2,250映射到0.5等等。