使用 JavaScript 创建围绕点的凸包

sum*_*isu 3 javascript convex-hull kineticjs

我想围绕使用 KineticJS 创建的图像创建一个外壳。

1 - 我将图像的所有顶点保存在带有 [x,y] 的数组中:

var points = [[0, 0], [0,350], [170, 0], [170, 300], [135, 135] , [135, 435], [305, 135], [305, 435]];
Run Code Online (Sandbox Code Playgroud)

2 - 我想在点周围创建一个凸包

3 - 之后,我想将船体的距离设置得高一点,这样所有物体都可以在船体中。

我在网上找到了一个用于创建凸包的javascript 实现,并尝试将其绑定到我的 KineticJS 脚本中。

但我收到一个错误:Uncaught RangeError:buildConvexHull 函数中超出了最大调用堆栈大小:

allBaseLines.push(baseLine)
Run Code Online (Sandbox Code Playgroud)

我的代码在小提琴中,但它不起作用... http://jsfiddle.net/gvFrd/5/

use*_*723 5

Hull.js 看起来就是您正在寻找的答案。制作凸包后,它还可以将边缘向内推并生成更多线段,以获得看起来相当准确的轮廓。

https://www.npmjs.com/package/hull.js

  • 抱歉,我不知道。 (2认同)