JS画布逐渐缩放
js canvas gradual zoom?
我一直在做一个非常血腥的巨大模拟,这意味着有必要放大和缩小。
我找到了一个很好的工作脚本,但是当模拟变大时,我发现它有问题......放大得越多,步长越小,缩小得越远,越大。
这是一个问题,因为无论您的缩放级别如何,我都需要步骤相等。
我现在使用的脚本是:
var total = 75,
delta = e.detail ? e.detail * -120 : e.wheelDelta; //e is mouse event
this.zoomValue += (delta > 0) ? 1 : -1;
this.zoomRatio = 1 + (this.zoomValue / total) * 2;
e.preventDefault();
你可以在这里看到它的实际效果:http://clanpvp.com/sol(如果它不起作用,我要么在摆弄它,要么你正在使用Internet Explorer)
稍后我将使用缩放比率来计算各种对象的位置。
谁知道更好的放大方法?
anwser实际上非常简单...然而,在我自己看到它之前,我需要有人给我看。
解决方案是让它呈指数级缩放,因此
this.zoomRatio = Math.exp(this.zoomValue);
做这个技巧,你可以做一些类似的事情
this.zoomRatio = Math.exp(this.zoomValue / 10);
使其以较小的"步骤"滚动。
相关文章:
- 更改高贴图的缩放级别
- 在不阻止默认行为的情况下检测IE10中的缩放
- 单击超链接时,如何使用Google Maps API v3缩放地图
- 缩放Raphael/SVG容器以适应所有内容
- 传单缩放控制位置错误
- 在不移动内部文本的情况下缩放元素的效果
- 调整缩放窗口高度提升缩放
- 计算CSS3缩放框在另一个框中的最高位置
- D3.JS向rect添加缩放和列表项
- 当我在节点上拖动鼠标时,我如何防止使用d3.ehavior.zoom().on(“缩放”,重绘)
- 将直流图表库中的折线图缩放限制为小时
- 为什么缩放按钮不会显示在照片擦除中
- 动态设置谷歌地图缩放
- 如何缩放像图像一样的元素
- 使用KineticJS变换(移动/缩放/旋转)形状
- 在手机上缩小/缩放滚动图像
- 将时间缩放添加到折线图(Chart.js)
- 当涉及css缩放时,如何获得页面上的点击位置
- 如何缩放地图框传单中的标记单击事件
- JS画布逐渐缩放