使用Intersection库检测并对对象/路径应用限制

时间:2011-04-18 02:00:54

标签: javascript svg restriction

所有

继我的帖子here之后,

@Phrogz建议我们调查 Kevin Lindsey's library以了解识别边界和应用限制的需求。有没有人有使用这个库的经验?

问题: 在我们的Web应用程序中,我们有一个由SVG路径组成的对象。我们正在尝试实现在此对象内拖放其他对象的功能,并且需要限制对象不能放在此SVG对象之外。

根据Phrogz的建议,我们调查了这一点,但正在努力理解如何传递对象。我们将对象作为路径字符串或SVG对象传递。

错误: 此时,我们没有得到任何输出,甚至不确定它是否接受我们通过的对象。

这是一个非常开放的问题,我特别热衷于听取那些可能对Kevin的图书馆/它的工作原理/功能有所了解的人的意见。

干杯

1 个答案:

答案 0 :(得分:0)

我不确定这对你有多大的影响力。我更多地将这个图书馆作为一个概念验证来编写,并在更高阶曲线的交叉点上进行自我教育。话虽这么说,我假设您正在尝试从库中实例化Path的实例?如果是这样,请查看以下实用程序中的loadShapes:

https://github.com/thelonious/js-intersections/blob/master/samples/IntersectionUtilities.js

在处理时,例如,在处理此文件时会调用它:

https://github.com/thelonious/js-intersections/blob/master/samples/intersect_bezier3_rect.svg

请注意,我正在使用自定义gui:edit属性标记要处理的项目。这很简洁,但是我很多年前写过这篇文章(8+),我确信最先进的技术有更好的技术,但我离题了。主要的是你需要使用类的节点类型来实例化每个形状类型。每次要检查交集时,都需要调用Intersection.intersectShapes(node1,node2)。这将返回一个具有status属性的对象,该属性将通知您是否存在交集或注释。我相信所有这些都可以改进。 github上的代码适用于那些希望分叉,修复和改进的人:)

https://github.com/thelonious/js-intersections https://github.com/thelonious/svg-2d

HTH, 凯文