- 首先定义画线(实线、虚线)、画面(矩形块)、值(距离)等渲染数据结构(渲染数据只提供坐标信息和一些基本样式属性,不需要依赖渲染是dom,还是canvas或webgl)
- 侦测数据,取每个图形的包盒信息,再根据包盒信息抽象成方向(left top right bottom middle center)。这样在计算时,可以不需要通过if来判断了,直接对比相同的方向数值是否在区间内(吸附距离)
- 吸附,对图层和参考线、画板的吸附(吸附完,选中目标的位置有可能发生变动,需要更新选中目标)
- 侦测行为:拖动时,按alt时,resize时等