我要求输入,我希望输出取决于输入范围内的范围。
示例:
我接受0.3 0.55等输入
范围是0.0到1.
“步骤”为0.1。意思是有10个位置/检查站。
如果输入为0.3,因为它是“步”的三倍,它应返回“位置3”,如果它小于0.3但大于0.2则应返回“位置2和3之间”等
问题:
答案 0 :(得分:1)
根据(input-range_min)/(range_max-range_min)* 10的值,编写这样的函数很容易。
struct Position
{
int positionLow;
bool inBetween;
};
Position WhereInRange(float input, float minScale, float maxScale, int numPositions)
{
Position res;
float fPlace = (input-minScale)/(maxScale-minScale)*numPositions;
res.positionLow = int(floor(fPlace));
res.inBetween = res.positionLow != fPlace;
}