首页 > 解决方案 > c# || 我需要一个变量来控制另一个变量,但都计算自己的范围。我怎么能这样做?

问题描述

我刚刚开始编码,我并不是一个真正的精确科学人。如果这太基本了,我很抱歉,但我真的很难过这个。我什至不知道从哪里开始,谷歌搜索并没有把我带到任何地方。

基本上,我有一个可由玩家控制的变量,从 0 到 100,我还有另一个变量可以控制从 10 到 140 的其他东西。我需要做的是让玩家控制一个的 0成为另一个人的 10,100 成为 140,以及介于两者之间的一切。

作为我需要的一个例子,我制作了这个绝对的疯子代码,有点模仿我想要的结果:

        if (getThrottle == 0) 
    {
        speed = 10;
    }
    else if (getThrottle == 30)
    {
        speed = 50;
    }
    else if (getThrottle == 50)
    {
        speed = 80;
    }
    else if (getThrottle == 70)
    {
        speed = 110;
    }
    else if (getThrottle == 100)
    {
        speed = 140;
    }

如果有人能指出我正确完成这项工作所需的正确方向,我会很高兴。

标签: c#

解决方案


speed一个计算的属性:

private double getThrottle = 50;

// Throttle ranges
private double minThrottle = 0;
private double maxThrottle = 100;

// speed range to normalize to
private double minSpeed = 10;
private double maxSpeed = 140;

// taken from: https://stats.stackexchange.com/questions/281162/scale-a-number-between-a-range
public double speed => getThrottle - minThrottle / maxThrottle-minThrottle * (maxSpeed-minSpeed) + minSpeed;

推荐阅读