remap_rangeがうまくいかない

解決方法

以下のコードを参考にしてください.

return new_min + (new_max - new_min) * ((val - old_min) / (old_max - old_min))

理由

remap_rangeのイメージは以下の図のようになり、old_min(maxでもよい)とvalの距離に対するold_minとold_maxの距離の比がnew_minとvalの距離に対する、new_minとnew_maxの距離の比と一致するということがポイントになります。

remap_rangeのイメージ

これを式にすると以下のようになります。

(val - old_min) / (old_max - old_min) = (new_val - new_min) / (new_max - new_min)

ここでnew_valを左辺に移行すると、最初に示した式になります。