目录
在实际绘制几何图形过程时,有几个工具比较实用:
- 鼠标绘制时,焦点捕捉已绘制图形的端点、线段上;
- 撤销与回退
- 辅助线
焦点捕捉的功能的思路相对比较简单,不断地比较当前鼠标所在的屏幕像素点为圆心,R为半径的搜索圆与绘制图形的端点和线段是否相交的问题。但在实时的图形编程的难点在于细节,至于如何优化搜索的速度,有很多方法,涉及比较深的图形搜索方法,比如对所有的图形空间先建立R树空间索引,这里不做详细介绍。
撤销与回退的功能则更加简单,其实就是状态管理,入栈和出栈的问题。
接下来,我们讲述一下在绘制过程中是辅助线的实现思路
辅助线的概念
辅助线分为静态辅助线和动态辅助线。
- 静态辅助线是指一直摆放在屏幕上不动的辅助线,鼠标能捕捉到上面,比如PS的辅助线。
- 动态辅助线是指在绘制过程中,根据已绘制的内容,智能的生成辅助线,并能让鼠标捕捉到上面
绘制线规则
- 鼠标在移动过程中,在指定的阈值范围内能捕捉到辅助线上的最近的点
- 每次绘制端点后,能够根据新生成的端点,生成一条相同方向和正交(相互垂直)的辅助线(根据需要生成指定角度的辅助线)
- 在绘制完成后,清除辅助线。