xxxxxxxxxx
64
let r1 = 100; let r2 = r1/2;
let angle = 0;
function setup() {
createCanvas(400, 400, WEBGL);
angleMode(DEGREES);
}
function draw() {
background(0, 0, 100);
orbitControl();
// let angle = map(mouseX, 0, width, 0, 360);
noFill();
stroke(255);
beginShape(POINTS);
for(let theta=0; theta<360; theta+=10) {
for (let phi=0; phi<360; phi+=10) {
let x = (r1 + r2*cos(theta/2))*cos(theta);
let y = (r1 + r2*cos(theta/2))*sin(theta);
let z = r2*sin(theta/2 + angle);
vertex(x, y, z);
let x2 = (r1 + r2*cos(180+theta/2))*cos(theta);
let y2 = (r1 + r2*cos(180+theta/2))*sin(theta);
let z2 = r2*sin(180+theta/2 + angle);
vertex(x2, y2, z2);
}
}
endShape();
angle += 1;
}
function drawShape() {
noFill();
stroke(255);
beginShape();
for(let theta=0; theta<360; theta+=3) {
for (let phi=0; phi<360; phi+=3) {
let x = (r1 + r2*cos(theta/2))*cos(theta);
let y = (r1 + r2*cos(theta/2))*sin(theta);
let z = r2*sin(theta/2);
vertex(x, y, z);
let x2 = (r1 + r2*cos(180+theta/2))*cos(theta);
let y2 = (r1 + r2*cos(180+theta/2))*sin(theta);
let z2 = r2*sin(180+theta/2);
vertex(x2, y2, z2);
}
}
endShape(CLOSE);
}