【发布时间】:2018-03-04 01:31:41
【问题描述】:
我正在使用 HTML 画布构建一个小型地理区域的交互式地图。画布将是使用的地图图像的全宽和全高。地图上会有几个点,当点击一个点时,画布应该以这个点为中心,然后放大它。
到目前为止,我已经尝试过在绘图上下文中使用translate,绘制地图图像,使点击的点位于画布的中心,然后使用scale 进行缩放,如下所示:
var clickX = e.offsetX || (e.pageX - canvas.offsetLeft);
var clickY = e.offsetY || (e.pageY - canvas.offsetTop);
clickedPoint = { x: clickX, y: clickY };
ctx.translate(
canvas.width/2 - clickedPoint.x,
canvas.height/2 - clickedPoint.y
);
ctx.scale(2, 2);
但是,当我此时绘制时,图像并没有出现在预期的位置。我猜是因为翻译点在比例函数之后没有对齐,因为没有比例,翻译正确发生,但我似乎无法让它工作 - 谁能解释如何解决这个问题?
编辑:示例链接 - http://staging.clicky.co.uk/canvas/
【问题讨论】:
标签: javascript html canvas