;
使用鼠标滚轮缩放后 , 在 Canvas 中绘制的图片的尺寸肯定是放大或者缩小了 , 尺寸发生了改变 ;
图片缩放时 , 鼠标指针指向一个位置 , 该位置对应着一个当前 Canvas 画布中的 x...垂直方向的比例 仍然保持不变 , 那就需要移动图片的位置 ;
如果放大图片就需要将图片往左上方移动 ;
如果缩小图片就需要将图片往右下方移动 ;
此时可以分析出 , 如果要实现 鼠标滚轮缩放的中心点设置为当前鼠标中心点..., 保存当前的鼠标位置及比例 ;
在鼠标滚轮事件 MouseWheelEvent 中 , 可以直接通过调用 e.getX(), e.getY() 获取到当前 鼠标指针 在 Canvas 画布的坐标 ;...double imageHeight = image.getHeight(null) * scale; // 缩放后的图像高度
有了鼠标指针在图片中的位置 , 图片的尺寸 , 就可以计算出鼠标指针在图片中的比例...在鼠标滚轮缩放完成后 , 再根据鼠标指针指向的位置和比例 , 结合图片缩放后的尺寸 , 重新计算画布偏移的位置 , 以达到鼠标指向的图片元素位置基本保持不变的目的 ;
/**
* 计算新的比例