【发布时间】:2012-06-29 07:32:46
【问题描述】:
我有一个实验,我的程序从我的扬声器中拾取音频(以分贝为单位......有点)。范围通常在 0 到 20 之间。我想取该值并将其映射到 0 到 1 之间的范围,以便我可以根据扬声器的音量按比例缩放项目。因此,如果音频为 20 分贝,则比例为 1。如果音频为 0 分贝,则比例为 0。我该怎么做?我正在使用 Unity3D,如果这能让任何人对辅助函数有所了解的话。
【问题讨论】:
-
嗯,我想要一种更动态的方式。
-
数字不会跳舞。 “动态”是什么意思?有相关代码吗?
-
是的...不好的问题。我配得上那个……
-
我知道这个问题的表述不是很好,但这可能有助于其他人试图规范化数据。基本上,您需要获取数据集并将每个样本除以最大幅度。请注意,幅度指的是正值和负值。一个简单的例子可以是规范化旋转木马的滑动方向。例如。 var dir = (end.pos - start.pos)/Math.abs(end.pos - start.pos);这只是一个样本,因此我们将其自行划分。我们希望保留 + 和 - 信息,这就是我们使用 abs() 的原因。这总是给出 dir = 1 或 -1。只是我的两分钱
-
感谢@Juank,它确实帮助完美地解决了我的问题。现在我的卡片无论大小或尺寸都均匀地向鼠标倾斜:D
标签: math unity3d range unityscript normalize