gpt4 book ai didi

在 C 编程中转换为新区间

转载 作者:行者123 更新时间:2023-11-30 18:57:49 25 4
gpt4 key购买 nike

我正在开展一个项目,我正在控制一艘船(模型)的发动机。我有一个方法,可以给出从 0 到 1000 的值,用于调节船的前进速度,但我的电机仅以 80 到 160 的值向前移动。我的问题是,是否有可能以某种方式将这个大间隔转换为较小的间隔?那么 0 等于 80,1000 等于 160,并且其间的所有值均匀分布(1 等于 80.08,2 等于 80.16 等)?有什么好的方法可以做到这一点吗?

我正在用 C 编写代码。

最佳答案

高中代数来拯救!

y = mx + b

你的斜率m是新变量相对于旧变量的变化,所以

m = (160-80)/(1000-0) = 0.08

您的 y 轴截距 b 是旧值为零处的新值:

y = 80 at x = 0

所以,

y = 0.08 x + 80

或者在C中:

int oldValue;
float newValue;

oldValue = 500;
newValue = 0.08*(float)oldValue + 80.0

// newValue is 120.0

关于在 C 编程中转换为新区间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19449352/

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