2d- polygon- 自我界面
在 2d 多边形中找到自接口
这个图书馆也许不快,但很坚固。 在它会找到多边形中的所有自相交集——当然减去共享的端点这一事实中很强.
您可以期待 O( n^2) 的时间复杂性
我们为什么不用 宾利- 奥特曼我们可能在未来, 但是这需要一些时间 并且有一个功能性机制 检测自我交互 远优于一个没有存在性。 亚庇不会为了这事而改变的.
安装
npm install 2d-polygon-self-intersections
使用情况
var isects = require('2d-polygon-self-intersections');
var poly = [
[0, 0],
[10, 0],
[0, 10],
[10, 10]
];
var r = isects(poly);
console.log(r);
// outputs: [ [ 5, 5 ] ]
api 密码
昆虫(单位:千美元)polygon[, filterFn)
polygon- 2个组件阵列(即三角形)[[0, 0], [10, 0], [10, 10]])或一系列对象:[{x:0, y:0}, {x:10, y:0}, {x:10, y:10}]filterFn- 当发现相交点时调用过滤函数:filterFn(单位:千美元)isect, (中文(简体) ),start0, (中文(简体) ),end0, (中文(简体) ),start1, (中文(简体) ),end1, (中文(简体) ),unique(中文(简体) )isect- 当前相交点(例如:.[5, 5]) - 此数组中的突变被收集index0- 段索引(例如:1(中文(简体) )start0- 第一段开始(例如[0, 5](中文(简体) )end0- 第一段开始(例如[10, 5](中文(简体) )index0- 段索引(例如:3(中文(简体) )start1- 第一段开始(例如[5, 0](中文(简体) )end1- 第一段开始(例如[5, 10](中文(简体) )unique- 布尔表示这个交叉点是否在以前见过- 返回时
true收集false丢弃
返回时 空数组,如果没有截面或包含代表相交点的2个组件数组.
页:1:这个库假设多边形是关闭的,所以手动添加起站点,因为起站点没有效果.
也注意到每个过境点有两个交叉点,这个库默认只报告一个——所有交叉点都将是独一无二的. 这种行为可以随着 filterFn。 。 。 .