xxxxxxxxxx
57
// x = (R1 + R2 cos(v)) cos(u)
// y = (R1 + R2 cos(v)) sin(u)
// z = R2 sin(v)
let r1 = 100; let r2 = 50;
let angle = 0;
function setup() {
createCanvas(400, 400, WEBGL);
angleMode(DEGREES);
}
function draw() {
background(220);
// rotateX(45);
// rotateY(45);
orbitControl(1, 1);
noFill();
beginShape(POINTS);
for (let i=0; i<360; i+=10) {
for (let j=0; j<360; j+=10) {
// xn = sign(x) * abs(x)n.
let a = cos(i);
let b = sin(i);
let c = cos(j + angle);
let d = sin(j + angle);
let n1 = 1;
let n2 = 1;
let an = Math.sign(a) * pow(abs(a), n1);
let bn = Math.sign(b) * pow(abs(b), n1);
let cn = Math.sign(c) * pow(abs(c), n2);
let dn = Math.sign(d) * pow(abs(d), n2);
let x = (r1+r2*cn)*an;
let y = (r1+r2*cn)*bn;
let z = r2*dn;
// let x = (r1+r2*cos(j))*cos(i);
// let y = (r1+r2*cos(j))*sin(i);
// let z = r2*sin(j);
vertex(x, y, z);
}
}
endShape();
angle+=1;
}