【p5.js】シェルピンスキーのギャスケット

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);
  }
}

今回は、以下のように出力される。

p5.js Web Editor
A web editor for p5.js, a JavaScript library with the goal of making coding accessible to artists, designers, educators, and beginners.

参考

シェルピンスキーのギャスケット - Wikipedia
https://omedstu.jimdofree.com/2017/11/28/%E3%82%B7%E3%82%A7%E3%83%AB%E3%83%94%E3%83%B3%E3%82%B9%E3%82%AD%E3%83%BC%E3%81%AE%E3%82%AE%E3%83%A3%E3%82%B9%E3%82%B1%E3%83%83%E3%83%88/

コメント

タイトルとURLをコピーしました