在canvas上画图添加缩放功能如何以鼠标指针的坐标为缩放中心

我知道canvas默认是从左顶点开始scale的,我的想法是scale后每个图形势必和左顶点的距离增大了(x-x/scale系数,y-y/scale系数)或者减小了(x+x/scale系数,y+y/scale系数),我就在scale后translate(-(x-x/scale系数),-(y-y/scale系数))或者translate(x+x/scale系数,y+y/scale系数),可是放大时却往右下角偏,缩小时往左上角偏,知道自己translate错了,可又不知道错在哪里,请大家帮忙看看,谢谢了

阅读 9.2k
1 个回答

分解:
1:先以原点为基点进行缩放scale(scaleValue,scaleValue),得到缩放后的图。
2:进行translate平移,平移的位置是(x,y)/scaleValue-(x,y)。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题