C#實現從一個範圍對映到另一個範圍功能
阿新 • • 發佈:2019-01-29
前幾天專案中使用到需要從一個範圍對映到另一個範圍的小功能,在此做一下記錄。
如下圖所示,我們需要將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值