记得帮一个公司写过一个项目,该项目是视频监控系统,使用Silverlight框架,实现在监控区域上画多边形,圆形,长方形等,主要是在监控区域上放置一个canvas用于画图,可以支持选择的区域的事件侦测,画圆形和长方形的鼠标操作方式单一,主要是画多边形的鼠标实现方式有几种
1,按住鼠标左键,拖动鼠标,释放鼠标左键,形成一条边,再添加新的边时,需要重新按住左键,重复之前的操作,而且选择点的时候要在之前的边的端点附近开始按住左键。
2,按住鼠标左键,拖动鼠标,释放鼠标左键,形成一条边,然后在释放处是该条边的终点,同时又是另一条边的起点,然后最后在最开始的边的起点附近单击,画出最后一条边。
3,按住鼠标左键,拖动鼠标,释放鼠标左键,形成一条边,然后在释放处是该条边的终点,同时又是另一条边的起点,然后最后在最开始的边的起点附近双击,画出最后一条边。
在以上的三种方法中,还要判断是否有相交的边,计算两条边是否相交有相关的算法。