function setup() {
createCanvas(400, 400);
noStroke();
}
function draw() {
background(220);
drawTriangle(width/2, 50, 300, 5);
}
function drawTriangle(x, y, length, level) {
fill(0);
triangle(x, y, x+length*sin(PI/6), y+length*cos(PI/6), x-length*sin(PI/6), y+length*cos(PI/6));
if (level > 0) {
fill(255);
triangle(x, y, x+length*sin(PI/6), y+length*cos(PI/6), x-length*sin(PI/6), y+length*cos(PI/6));
length /= 2;
drawTriangle(x, y, length, level-1);
drawTriangle(x+length*sin(PI/6), y+length*cos(PI/6), length, level-1);
drawTriangle(x-length*sin(PI/6), y+length*cos(PI/6), length, level-1);
}
}
今回は、以下のように出力される。
sierpinski-gasket by inoha_naito -p5.js Web Editor
A web editor for p5.js, a JavaScript library with the goal of making coding accessible to artists, designers, educators,...
参考
シェルピンスキーのギャスケット - Wikipedia
シェルピンスキーのギャスケット
(著)山たー