1. 程式人生 > >C#實現從一個範圍對映到另一個範圍功能

C#實現從一個範圍對映到另一個範圍功能

前幾天專案中使用到需要從一個範圍對映到另一個範圍的小功能,在此做一下記錄。

如下圖所示,我們需要將input中每個值和output中每個值對應;


對應數學公式:


化簡得到:


在這裡我們使用Unity做簡單測試(如上公式是通用的),我們新建一個空物件,起名RemapTest,新建Remap.cs 掛載在物件上,程式碼如下:

    [Header("輸入範圍")]
    public float input_start;
    public float input_end;
    [Header("輸出範圍")]
    public float output_start;
    public float output_end;
    [Header("輸入值")]
    public float input;
    [Header("輸出值")]
    public float output;

    //範圍比例係數
    float f;

	// Use this for initialization
	void Start () {
        f = (output_end - output_start) / (input_end - input_start);
	}
	
	// Update is called once per frame
	void Update () {

        output = output_start + (input - input_start) * f;
	}

填入 輸入和輸出的範圍,開始執行,任意輸入input的值,即可檢視對應的output值