NATHANIELDUCATviz NATHANIELDUCATviz Computer Science Answered ["ஹ", "௸", "௵", "꧄", "ဪ", "꧅", "", "", "﷽", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""]; function setup() { createCanvas(800, 800); colorMode(HSB, 360, 100, 100, 100); angleMode(DEGREES); noSmooth(); noLoop(); } function draw() { background(0, 0, 90); let offset = width / 20; let margin = offset /3; let cell_num = int(random(1, 8)); setGrid(-offset, -offset, width + offset * 2, height + offset * 2, cell_num, margin); } function setGrid(x, y, w, h, cell_num, m) { let cw, ch; let rotate_num = int(random(4)); if (rotate_num % 2 == 0) { cw = w; ch = h; } else { cw = h; ch = w; } push(); translate(x + w / 2, y + h / 2); rotate(rotate_num * 360 / 4); translate(-cw / 2, -ch / 2); let cdw = cw / cell_num; let cdh = ch / cell_num; let margin = 0; let s = random(str_arr); for (let j = 0; j < cell_num; j++) { for (let i = 0; i < cell_num; i++) { let cx = i * (cdw + margin); let cy = j * (cdh + margin); if (min(cdw, cdh) > width / 10) { setGrid(cx, cy, cdw, cdh, int(random(1, 8)), margin); } else { push(); noStroke(); fill(0,0,90); // rectMode(CENTER); rect(cx,cy,cdw,cdh); drawingContext.clip(); drawString(cx, cy, cdw, cdh, s); pop(); } } } pop(); } function drawString(x, y, w, h,s) { let cw, ch; let rotate_num = int(random(8)); if (rotate_num % 2 == 0) { cw = w; ch = h; } else { cw = h; ch = w; } push(); translate(x + w / 2, y + h / 2); scale(random(100) >50 ? -1:1, random(100) >50 ? -1:1); rotate(random(360)); textSize(max(w,h)); textAlign(CENTER,CENTER); // textStyle(BOLD); textFont("serif"); fill(0,0,0); text(s,0,0); pop(); }