使用交集库检测对象/路径并对其应用限制

Detect and apply restriction to objects/ paths using Intersection library

本文关键字:应用 路径 对象 检测      更新时间:2023-09-26

全部,

继我在这里的帖子之后,

@Phrogz建议我们调查Kevin Lindsey的图书馆,以了解我们确定边界和实施限制的需求。有人有使用这个图书馆的经验吗?

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

根据Phrogz的建议,我们对此进行了研究,但很难理解如何传递对象。我们是将对象作为路径字符串传递还是作为SVG对象传递。

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

这是一个非常开放的问题,我特别希望听到那些可能对Kevin的图书馆/它是如何工作的/功能略知一二的人的意见。

干杯

我不确定这对你来说有多好。我写这个库更多的是为了证明概念,并自学高阶曲线的交点。话虽如此,我假设您正试图从库中实例化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(。这将返回一个具有状态属性的对象,该属性将让您知道是否存在交集或注释。我相信这一切都可以改进。该代码在github上为那些希望分叉、修复和改进的人提供:(

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

HTH,Kevin