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. 大规模伪逆
- 4. PHP:大规模assignement
- 5. jQuery Javascript大规模应用程序开发
- 6. 规模较大的MYSQL表
- 7. 大规模更改密码
- 8. Laravel大规模转让
- 9. 大规模的URL更改
- 10. 大规模重构策略
- 11. Alfresco大规模删除
- 12. 大规模更新为varchar
- 13. 大规模的git commit squashing
- 14. in_array如果$大规模= $ insteredname
- 15. SQL大规模数据集
- 16. Akka。如何扩大规模?
- 17. 规模日益扩大
- 18. 大规模INSERT - Spring框架
- 19. BigDecimal规模为大数
- 20. 如何大规模更新?
- 21. 大规模分配测试
- 22. 与GWT的大规模应用程序
- 23. 使用javascript不正规锚
- 24. 大规模放大后TextView不显示
- 25. 使用与规范模式
- 26. 如何在大规模的1-100规模数量
- 27. 如何大规模使用正则表达式
- 28. 使用SQL Server Compact 4.0的大规模微型ORM示例
- 29. 使用Chef为大规模部署动态创建节点
- 30. 放大一个鼠标滚轮点(使用规模和翻译)
您可以包括'javascript'在问题试过吗? ,创建stacksnippets来演示? – guest271314
只需'x * 0.4 + 20'。这就是我如何得到'0.4':(60 - 20)/(100-0)' – saeedgnu