html5 Canvas Select 区域和缩放
html5 Canvas Select an Area and Zoom
我正在 javascript 中重新实现从 svg 到 canvas 的交互式热图。我想知道是否有人对如何允许某人 select 一个区域并使用 html5 canvas 和 js.
放大该区域有任何想法
非常感谢,
汤姆
免责声明:因为您没有提供任何代码,所以我将在这里坚持策略:)
方法一:DIY
首先,您必须决定您的分辨率或单元格大小,以及缩放时单个单元格会发生什么情况。
案例 1:您的单元格大小增加,您只需将单元格大小乘以缩放因子并裁剪超出用户选择范围的区域。
情况 2: 您希望热图单元格为像素大小,在这种情况下,当您放大时,现在每个先前的像素(或单元格)都必须进行插值和您将通过缩放系数增加分辨率。当然,您必须为该区域重新运行 热图功能并提供更高分辨率。
一旦您弄清楚了这两种策略中的一种,JavaScript 上的实施实际上非常简单。
您挂钩到拖动事件。并让用户绘制一个矩形以显示他们正在放大的参考区域。
然后根据绘制的矩形与原始图像或容器的比例计算缩放系数。这将成为您的缩放系数
现在使用缩放系数生成新图像,基于 Case1 或 Case2,具体取决于您使用的
最后,您用旧图像替换了现有图像。
中提琴!缩放!!
方法二:使用库!
使用像 OpenLayers 3, and just load your heatmap into it. Here's an Heatmap Example 这样在 OpenLayers 3 中完成的很棒的库。现在免费提供缩放平移!
希望这对您有所帮助。
我正在 javascript 中重新实现从 svg 到 canvas 的交互式热图。我想知道是否有人对如何允许某人 select 一个区域并使用 html5 canvas 和 js.
放大该区域有任何想法非常感谢, 汤姆
免责声明:因为您没有提供任何代码,所以我将在这里坚持策略:)
方法一:DIY
首先,您必须决定您的分辨率或单元格大小,以及缩放时单个单元格会发生什么情况。
案例 1:您的单元格大小增加,您只需将单元格大小乘以缩放因子并裁剪超出用户选择范围的区域。
情况 2: 您希望热图单元格为像素大小,在这种情况下,当您放大时,现在每个先前的像素(或单元格)都必须进行插值和您将通过缩放系数增加分辨率。当然,您必须为该区域重新运行 热图功能并提供更高分辨率。
一旦您弄清楚了这两种策略中的一种,JavaScript 上的实施实际上非常简单。
您挂钩到拖动事件。并让用户绘制一个矩形以显示他们正在放大的参考区域。
然后根据绘制的矩形与原始图像或容器的比例计算缩放系数。这将成为您的缩放系数
现在使用缩放系数生成新图像,基于 Case1 或 Case2,具体取决于您使用的
最后,您用旧图像替换了现有图像。
中提琴!缩放!!
方法二:使用库!
使用像 OpenLayers 3, and just load your heatmap into it. Here's an Heatmap Example 这样在 OpenLayers 3 中完成的很棒的库。现在免费提供缩放平移!
希望这对您有所帮助。