带有map()/ mapto()函数的C / C ++库? [关闭]

问题描述 投票:-4回答:1

我正在搜索的是一个函数,它允许将某个数值范围的某个数值映射到另一个数值范围。我确实找到了一种手动创建这个功能的方法,它具有基本的计算output = output_start + ((output_end - output_start) / (input_end - input_start)) * (input - input_start),但是我发现自己总是创建它,搜索我的旧项目来找到它或仅为此函数创建头文件相当麻烦。

我认为这是一个基本的功能,它应该在C / C ++标准库中的某个地方,或者至少在主流的第三方库中,但是我找不到它。

c++ c math
1个回答
1
投票

您正在寻找一个线性变换函数,对于范围内的每个数字,[input_start, input_end]使用比例因子计算[output_start, output_end]范围内的数字(即(output_end - output_start) / (input_end - input_start)以覆盖整个范围)。

不幸的是,这个简单的函数在标准库中不存在(例如,在cmathnumeric中都不存在)。无论如何,当使用这种转换时,最常见的是你只想计算一次比例因子。

所以最简单的方法是为此创建自己的函数。在C ++中,您可以创建一个类,它在构造时计算因子。

© www.soinside.com 2019 - 2024. All rights reserved.