逆转的力量

时间:2018-03-20 14:15:00

标签: unity3d math

在Unity或伪代码中,我如何反转以下计算,该计算从给定值超过1到修改值...

// value can be anything that's > 1f and <= 2f
float power = Mathf.Pow(value, 2f) * 2f;
float modifiedValue = Mathf.Pow(value, power);

...将给定的ModifiedValue再次转换为原始值? (我可能需要在某处拥有1f /某种力量,但不确定。)谢谢!

1 个答案:

答案 0 :(得分:3)

求解原始值将涉及复数。这是wolfram alpha

的数学计算

enter image description here

由于你说这是一个UI滑块,很明显,进行计算是过度的。这有两个解决方案:

  • 使用具有相同优点的功能。 value^8是一个很好的候选者:将值从1到256绑定,对低值进行相同的微调。使用modifiedValue^(1/8)

  • 可以轻松恢复它
  • 使用查找表。

在这些之间进行选择是一种偏好。我的建议是:如果您对该功能很灵活,请使用第一个解决方案。代码将更干净,以后更容易更改功能。否则使用查找表