gpt4 book ai didi

c++ - 在 C++ 中稳定一个值

转载 作者:搜寻专家 更新时间:2023-10-31 00:42:37 25 4
gpt4 key购买 nike

我有一个变量,它是同余模 x=y(mod 360),这意味着 y 在 0 - 360 之间变化,如果该值大于 360,它再次变为 0。例如 x=5 for y = 365 。

我写这个函数是为了稳定 y ,所以如果 x 和 previousx 之间的差异大于 5,那么我得到 x 否则 previousx 。

float stabilize(float x,float previous){

if(fabs(x-previousx)<5)
{
return previousx;
}
else
{
return x;
}

}

这在 0 到 360 之间工作正常但是这在 360 和 0 的边界条件下失败。当 y 是接近 0 的值(例如 0.3)并且前一个 y 接近 360(例如 359)时,我如何稳定该值。所以此处计算的差异为 359 - .3 = 358.7 。但我希望它是 1.3 的模 360 差。

最佳答案

if(fabs(x-previousx)<5 || fabs(x-previousx)>355) 这样的东西呢? ?鉴于输入数据是 mod 360,如果差异足够大,则意味着两个值都足够接近边界。

关于c++ - 在 C++ 中稳定一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11793312/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com