相关疑难解决方法(0)

HTML5画布在缩放和翻译后获取坐标

在此输入图像描述在此输入图像描述

背景:我有一个HTML5画布,我画了一个图像.现在,当图像首次加载时,它以100%的比例加载.图像是5000 x 5000.画布尺寸是600 x 600.所以onload,我只看到前600 x像素和600 y像素.我可以选择在画布上缩放和翻译图像.

我的问题:我试图找出一种算法,该算法在考虑缩放和平移的同时,相对于图像返回鼠标点击的像素坐标,而不是画布.我知道已经有很多话题,但我见过的都没有用.我的问题是当我有多个翻译和缩放时.我可以缩放一次并获得正确的坐标,然后我可以再缩放并获得正确的坐标,但是一旦我缩放或缩放多次,坐标就会关闭.

这是我到目前为止所拥有的.

//get pixel coordinates from canvas mousePos.x, mousePos.y
(mousePos.x - x_translation)/scale //same for mousePos.y

annotationCanvas.addEventListener('mouseup',function(evt){
                     dragStart = null;
                     if (!dragged) {
                       var mousePos = getMousePos(canvas, evt);
                       var message1 =  " mouse  x: " + (mousePos.x) + '  ' + "mouse y: " + (mousePos.y);
                       var message =  "  x: " + ((mousePos.x + accX)/currentZoom*currentZoom) + '  ' + "y: " + ((mousePos.y + accY)/currentZoom);
                       console.log(message);
                       console.log(message1);
                       console.log("zoomAcc = " + zoomAcc);
                       console.log("currentZoom …
Run Code Online (Sandbox Code Playgroud)

javascript html5 canvas

8
推荐指数
1
解决办法
6029
查看次数

标签 统计

canvas ×1

html5 ×1

javascript ×1