达到最大值后如何倒计时

How to count down after reaching max

我正在处理度数,我需要一个单独的值以保持在特定范围内。

我使用的度数是从 0 到 180,我需要单独的变量将其解释为:

- 0.0f 度 = 0.0f

- 90.0f 度 = 1.0f

- 180.0f 度 = 0.0f

目前,我有这个从 0.0f 到 1.0f,度数 0.0f 到 90.0f:

float unit = 1.0f / 90.0f; // equivalent of 1 degree
value = unit * maths::toDegrees(angle);

我想弄清楚的是,当它越接近 180 度时,让“值倒数回到 0”。

使用与90差的绝对值:

value = 1.0 - unit * math::Abs(90 - maths::toDegrees(angle));

P.S。如果想要平滑依赖,可以考虑

值=数学::Sin(角度);

在0时等于0,在Pi/2=90时达到最大值1,在Pi=180时减小到0