xxxxxxxxxx
48
const RATIO = Math.sqrt(2); // DinA
const WIDTH = 400;
const HEIGHT = Math.floor(RATIO * WIDTH);
const PADDING = 50;
const ACTUAL_WIDTH = WIDTH - PADDING * 2;
const ROWS = 400;
const STEPS = 1;
const ITERATIONS = STEPS * ROWS;
const FACTOR = ROWS / 2;
function setup() {
createCanvas(WIDTH, HEIGHT, SVG);
noLoop();
}
function draw() {
background(230);
stroke(0);
strokeWeight(1);
noFill();
const Y_OFFSET = HEIGHT / 2;
const X_OFFSET = WIDTH / 2;
translate(X_OFFSET, Y_OFFSET);
beginShape();
for (let i = 0; i <= ROWS; i++) {
const val = i / ROWS;
const angle = val * PI - HALF_PI;
const max_width = (cos(angle) / 2) * ACTUAL_WIDTH;
const x = max_width * sin(val * FACTOR);
const y = (sin(angle) / 2) * ACTUAL_WIDTH;
curveVertex(x, y);
}
endShape();
// save("sphere.svg");
}