我正在开发一个项目,我想围绕一些SVG元素绘制一条线,以便选择区域内的对象.
这是我现在所拥有的截图.我已经使用Paint来添加线条,以便清楚地表明我想要实现的目标.我想在绘制的圆圈内选择两个矩形.
Screenshot http://s23.postimage.org/y6t5t9be3/Screen_Shot_2013_02_26_at_15_31_26.png
我看到了许多必须解决的步骤:
>在mousedown创建一个path元素并记录鼠标移动直到mouseup
>如果用户没有画圆圈,请关闭路径
>找到完全或部分在圆圈内的svg元素
你看到哪种方法,你对如何去做有什么建议吗?
解决方法
我会采取以下步骤:
>获取写意形式的aabb(或最小/最大框),
>找到aabb与自由形式重叠的所有元素并将其保存在列表中,
>获得写意形状的凸包,
>测试列表元素中的每个顶点或某些顶点是否位于凸包内
根据您是否测试所有顶点位于凸包内,您可以确定该元素是完全位于徒手画图内还是仅重叠.
不幸的是,我对d3.js并不熟悉,但只是猜测它提供了获取凸包,aabbs和测试点在多边形内的方法.可能它甚至可以让你在第2步中进行aabb查询以找到重叠的aabb.
祝好运…
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。