我正在尝试基于路径生成某种“河”多边形:
此部分正在工作,路径已正确生成。但是,当我尝试将它们添加到图层时,它会中断。 这是我的代码:
watch-files
当我尝试激活图层时,出现“未捕获的TypeError:无法读取未定义的属性'0'”,但没有任何其他信息。 我在做什么错了?
答案 0 :(得分:2)
正如GrzegorzT。指出的那样,问题出在第一部分:
for (let j = 0; j<paths.length; j++) {
p = paths[j];
// Iterate over every point of the path
for (let i = p.length - 1; i >= 0; i--) {
// Save the new coordinates in the mirror array
pathinverted[j] = new Array(); // <= you recreate the array in your inner loop
}
}
由于您在内部循环中重新创建了镜像数组,因此要擦除以前的坐标对。
您应该只在外循环中初始化镜像数组:
for (let j = 0; j<paths.length; j++) {
p = paths[j];
pathinverted[j] = new Array();
// Iterate over every point of the path
for (let i = p.length - 1; i >= 0; i--) {
// Save the new coordinates in the mirror array
pathinverted[j][p.length - 1 - i] = [0,0]; // etc.
}
}