0
A
回答
1
比例因子是(newMax - newMin)/(prevMax - prevMin)
。您還需要通過newMin - prevMin
function generateScaleFunction(prevMin, prevMax, newMin, newMax) {
var offset = newMin - prevMin,
scale = (newMax - newMin)/(prevMax - prevMin);
return function (x) {
return offset + scale * x;
};
};
用法沿着號線移動
var fn = generateScaleFunction(0, 100, 20, 60);
fn( 0); // 20
fn(25); // 30
fn(50); // 40
fn(75); // 50
fn(100); // 60
// please note you are not guaranteed an int
fn(1); // 20.4
+0
謝謝你的及時和有益的解決方案隊友! :) – neoDev
相關問題
- 1. 規模大小
- 2. 大規模使用奠定了DirectX和
- 3. Magento「使用Defualt值」大規模更新
- 4. 大規模二次規劃
- 5. 大規模系統
- 6. 大規模僞逆
- 7. PHP:大規模assignement
- 8. Azure網站 - 擴大規模與擴大規模
- 9. jQuery Javascript大規模應用程序開發
- 10. 大規模ORM和繼承
- 11. 如何大規模更新?
- 12. 大規模ORM和功能
- 13. SQL大規模數據集
- 14. 大規模重構策略
- 15. 大規模更新爲varchar
- 16. 大規模INSERT - Spring框架
- 17. 大規模的URL更改
- 18. 大規模的git commit squashing
- 19. Laravel-Excel大規模進口
- 20. 規模日益擴大
- 21. Akka。如何擴大規模?
- 22. BigDecimal規模爲大數
- 23. 規模較大的MYSQL表
- 24. Alfresco大規模刪除
- 25. 大規模更改密碼
- 26. in_array如果$大規模= $ insteredname
- 27. 大規模分配測試
- 28. Laravel大規模轉讓
- 29. SqlDbType.VarChar最大規模達到
- 30. 大規模EXT JS應用程序
您可以包括'javascript'在問題試過嗎? ,創建stacksnippets來演示? – guest271314
只需'x * 0.4 + 20'。這就是我如何得到'0.4':(60 - 20)/(100-0)' – saeedgnu