在 Processing 中,你可以使用以下代码定义两个函数,分别实现对 20 的线性插值和将 30 从 0-100 映射到 100-200 的范围:

  1. 线性插值函数:
float linearInterpolation(float value, float min, float max, float newMin, float newMax) {
  float t = (value - min) / (max - min);
  float newValue = newMin + t * (newMax - newMin);
  return newValue;
}

// 示例用法
float interpolatedValue = linearInterpolation(20, 10, 100, 100, 200);
println('20 的线性插值结果:' + interpolatedValue);

在上述代码中,我们定义了一个名为 linearInterpolation 的函数,它接受五个参数:要插值的值,原始范围的最小值和最大值,目标范围的最小值和最大值。在函数内部,我们首先计算插值所在的比例(t),然后将比例应用于目标范围,得到插值结果(newValue),最后将结果返回。

在示例用法中,我们调用 linearInterpolation 函数来对 20 进行线性插值。将结果输出到控制台上。

  1. 映射函数:
float mapValue(float value, float oldMin, float oldMax, float newMin, float newMax) {
  float mappedValue = newMin + (value - oldMin) * (newMax - newMin) / (oldMax - oldMin);
  return mappedValue;
}

// 示例用法
float mappedValue = mapValue(30, 0, 100, 100, 200);
println('30 的映射结果:' + mappedValue);

在上述代码中,我们定义了一个名为 mapValue 的函数,它接受五个参数:要映射的值,原始范围的最小值和最大值,目标范围的最小值和最大值。在函数内部,我们首先计算映射值相对于原始范围的比例,然后将比例应用于目标范围,得到映射结果(mappedValue),最后将结果返回。

在示例用法中,我们调用 mapValue 函数来将 30 从 0-100 映射到 100-200 的范围。将结果输出到控制台上。

Processing 中的线性插值和映射函数:实例详解

原文地址: http://www.cveoy.top/t/topic/ug8 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录