html5画布选择一个区域并缩放

Thomas Yu

我正在用JavaScript重新实现从SVG到画布的交互式热图。我想知道是否有人对如何允许某人选择区域并使用html5 canvas和js放大该区域有任何想法。

非常感谢,汤姆

肖纳克

免责声明:由于您未提供任何代码,因此在这里我将坚持使用策略:)

方法1:DIY

您必须决定的第一件事是您的情况下的分辨率或像元大小以及缩放时单个像元会发生什么。

情况1:您的像元大小增加了,您只需将像元大小乘以缩放系数,然后裁剪超出用户选择范围的区域即可。

情况2:您希望将热图单元的大小设为像素大小,在这种情况下,当您放大时,现在必须对每个先前的像素(或单元)进行插值,并且将缩放比例提高分辨率。当然,您将不得不以更高的分辨率重新运行该区域的热图功能。

一旦弄清楚了这两种策略中的一种,就可以在JavaScript上实现它实际上非常简单。

  1. 您迷上了拖动事件。并让用户绘制一个矩形以向他们显示他们正在放大的参考区域。

  2. 然后,您将根据绘制的矩形与原始图像或容器的比率来计算缩放系数。这成为您的缩放系数

  3. 现在,使用缩放系数,根据Case1或Case2生成新图像,具体取决于您使用的是哪种

  4. 最后,用旧的图像替换现有的图像。

  5. 中提琴!飞涨 !!

方法2:使用库!

使用很棒的库,例如OpenLayers 3,然后将您的热图加载到其中。是在OpenLayers 3中完成的一个热图示例。缩放平移现在免费提供!

希望这可以帮助。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在背景缩放上绘制HTML5画布

来自分类Dev

缩放HTML5画布图像

来自分类Dev

在背景缩放上绘制HTML5画布

来自分类Dev

HTML5画布缩放,其中鼠标坐标

来自分类Dev

如何一个接一个地动画多个HTML5画布对象?

来自分类Dev

拖动并选择HTML5画布中的文本

来自分类Dev

拖动并选择HTML5画布中的文本

来自分类Dev

html5画布包含颜色选择

来自分类Dev

html5画布笔划两次,再次绘制第一个笔划

来自分类Dev

html5画布笔划两次,再次绘制第一个笔划

来自分类Dev

HTML5画布-绘制线段和圆-一个圆使用不同的颜色

来自分类Dev

禁用html5画布

来自分类Dev

了解HTML5画布

来自分类Dev

禁用html5画布

来自分类Dev

HTML5画布脉动

来自分类Dev

HTML5画布脉动

来自分类Dev

缩放和旋转后,HTML5画布会回移

来自分类Dev

HTML5画布在背景图像上进行缩放

来自分类Dev

将HTML5画布缩放为div的宽度和高度

来自分类Dev

如何在具有更好插值的html5画布上缩放图像?

来自分类Dev

为什么缩放后的HTML5画布上的“像素”奇怪地对齐?

来自分类Dev

如何在不缩放的情况下使用HTML5画布翻转图像

来自分类Dev

如何缩放HTML5画布而不使其模糊?

来自分类Dev

相对于HTML5画布缩放文档上的鼠标坐标

来自分类Dev

通过从图像中心旋转并缩放来拉直HTML5画布中的图像

来自分类Dev

将HTML5画布缩放为div的宽度和高度

来自分类Dev

CSS:缩放HTML5画布以使用所有父div空间

来自分类Dev

如何在Safari iOS中缩放HTML5画布中的表情符号?

来自分类Dev

使用原生javascript代码触摸HTML5画布上的区域