【发布时间】:2014-04-02 23:01:37
【问题描述】:
我想围绕使用 KineticJS 创建的图像创建一个外壳。
1 - 我用 [x,y] 将图像的所有顶点保存在一个数组中:
var points = [[0, 0], [0,350], [170, 0], [170, 300], [135, 135] , [135, 435], [305, 135], [305, 435]];
2 - 我想围绕点创建一个凸包
3 - 之后,我想将船体的距离设置得高一点,这样所有物体都可以在船体中。
我找到了javascript implementation 用于在线创建凸包,并尝试将其绑定到我的 KineticJS 脚本中。
但我得到一个错误: 未捕获的 RangeError:超出最大调用堆栈大小 在 buildConvexHull 函数中:
allBaseLines.push(baseLine)
我的代码有问题,但它不起作用... http://jsfiddle.net/gvFrd/5/
【问题讨论】:
-
凸包算法可能需要
points中的对列表。首先是 x 列表,然后是 y 坐标列表。 -
我将结构更改为 var points = [[0, 0], [0,350], [170, 0], [170, 300], [135, 135] , [135, 435] , [305, 135], [305, 435]];但错误并没有消失。
-
for 循环看起来很奇怪。尝试合并这两行,
for( var pt in points)。但是可能我对 JS 还不够了解。 -
谢谢,这不是错,但是我意识到我太笨了,无法复制和粘贴...功能与getConvexHull相同...我全部更新了,但是错误是没有定义基线...
标签: javascript kineticjs convex-hull