javascript-不完整的Sierpinski三角形显示
发布时间:2022-09-05 17:57:08 304
相关标签: # 前端
我正在关注教科书The Nature of code的示例 7.1。(原代码是用Java写的,但是由于处理库在功能上和p5.js是一样的,为了方便我把它改成了JavaScript)
我相信我已经逐字复制了示例代码,但不知何故,我最终得到了一个出乎意料的结果。显示的Sierpinski三角形中有一个不完整的部分。
我想知道我的代码哪里出了问题,或者是什么误解导致了这种问题。
这是图像的代码
class CA {
constructor(ca_width) {
this.generation = 0;
this.w = 5;
this.cells = new Array(1050 / this.w);
this.newcells = new Array(this.cells.length);
this.ruleset = [0, 1, 0, 1, 1, 0, 1, 0]; // [1,1,0,1,1,1,1,0]//
for (let i = 0; i < this.cells.length; i++) {
this.cells[i] = 0;
}
this.cells[this.cells.length / 2] = 1;
}
generate() {
let nextgen = new Array(this.cells.length);
for (let i = 1; i < this.cells.length - 1; i++) {
let left = this.cells[i - 1];
let me = this.cells[i];
let right = this.cells[i + 1];
nextgen[i] = this.rules(left, me, right);
}
this.cells = nextgen;
this.generation++;
}
rules(a, b, c) {
let s = "" + a + b + c;
let index = parseInt(s, 2);
return this.ruleset[index];
}
display() {
for (let i = 0; i < this.cells.length; i++) {
if (this.cells[i] == 0)
fill(255);
else fill(0);
stroke(0);
rect(i * this.w, this.generation * this.w,
this.w, this.w);
}
}
}
特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报