canvas 如何创建一个可拖动的画板?

现在画板的拖动效果实现了,可如何在画板中作画,我想到用触摸加矩形色块,但是加的色块不在画板上面,以至于拖动画板后,色块没有跟随!
期望的类似效果:https://codepen.io/ste-vg/pen/dvLvzy?editors=0010


globalCompositeOperation 是不是我说的效果?

阅读 4k
2 个回答

你需要记录用户的每一个笔触,从落笔到抬笔,记为一笔,用一个数组记录每个点.

拖动时,不应移动画,而是应该使用ctx.translate移动画布的中心点坐标.
拖动后,再落笔,需要考虑原点的偏移值.

整体设计就是围绕一个可移动的原点,接受用户输入,存储轨迹.移动时,移动原点,重新绘制画面.

把轨迹数据化的好处还在于做撤销非常容易.

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