Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在缩放和移动图像时,当图像的任何一侧接触画布一侧时,停止移动图像_Javascript_Html_Canvas_Scale_Drawimage - Fatal编程技术网

Javascript 在缩放和移动图像时,当图像的任何一侧接触画布一侧时,停止移动图像

Javascript 在缩放和移动图像时,当图像的任何一侧接触画布一侧时,停止移动图像,javascript,html,canvas,scale,drawimage,Javascript,Html,Canvas,Scale,Drawimage,我在html5画布上开发了放大和缩小功能。当我的图像侧面接触画布的侧面时,它不应该再被重新绘制。我想要这样的功能 缩放图像后,参考第二个画布框并尝试移动图像。当图像侧与画布侧重叠时,图像的移动停止 html 我认为处理这些情况最简单的方法是总是根据用户输入计算下一个值,然后钳制该值,然后将其指定为新值 nextX += x - startX ; nextY += y - startY ; 这将涉及使用夹紧功能: function clamp(x, minx, maxx) { if (

我在html5画布上开发了放大和缩小功能。当我的图像侧面接触画布的侧面时,它不应该再被重新绘制。我想要这样的功能

缩放图像后,参考第二个画布框并尝试移动图像。当图像侧与画布侧重叠时,图像的移动停止

html


我认为处理这些情况最简单的方法是总是根据用户输入计算下一个值,然后钳制该值,然后将其指定为新值

nextX += x - startX ;
nextY += y - startY ;
这将涉及使用夹紧功能:

function clamp(x, minx, maxx) {
     if (x<minx) return minx;
     if (x>maxx) return maxx;
     return x;
}

不幸的是,它不工作。下面是我更新的函数。nextX+=x-startX;nextY+=y-星型;x=ClampNext,0,canvas.width-currentScale*image.width;y=ClampNext,0,canvas.height-currentScale*image.height;startX=x;startY=y;好的,但你们知道S.O.不是提供最终的工作答案,而是提供指导。看来你成功了,太棒了!
nextX += x - startX ;
nextY += y - startY ;
function clamp(x, minx, maxx) {
     if (x<minx) return minx;
     if (x>maxx) return maxx;
     return x;
}
 x = clamp(nextX, 0 , canvas.width - scale * image width );
 y = clamp(nextY, 0 , canvas.height - scale * image height );