xxxxxxxxxx
56
let r0; let r1;
let l; let t;
let angle = 0;
function setup() {
createCanvas(600, 400, WEBGL);
angleMode(DEGREES);
r0 = new Slider("r0:", 0, 150, 100, 1, 10, 10);
r1 = new Slider("r1:", 0, 150, 30, 1, 10, 30);
l = new Slider("Layer:", 0, 8, 3, 1, 10, 50);
t = new Slider("Thickness:", 0, 3, 1.5, 0.5, 10, 70);
loadFont("Roboto-Black.ttf", drawText);
}
function drawText(font) {
textFont(font, 11);
}
function draw() {
background(0, 0, 100);
r0.display();
r1.display();
l.display();
t.display();
rotateY(90);
// rotateY(45);
orbitControl(1, 1);
translate(70, 30, 0);
stroke(255);
beginShape(POINTS);
for (let i=0; i<360; i+=30) {
for (let j=0; j<360; j+=10) {
noFill();
// let layer = sin(j*l.val);
let v = map(mouseX, 0, width, 0, 360);
let layer = 1;
let x = cos(i) * (r0.val + r1.val*cos(j));
let y = sin(i) * (r0.val + r1.val*cos(j + v));
let z = r1.val * sin(j);
// let x = cos(i) * (r0.val + (layer+t.val)*r1.val*cos(j + angle));
// let y = sin(i) * (r0.val + (layer+t.val)*r1.val*cos(j + angle));
// let z = (layer+t.val)*r1.val * sin(j + angle);
vertex(x, y, z);
}
}
endShape();
angle += 1;
}