xxxxxxxxxx
48
let slider;
function setup() {
createCanvas(600, 600);
angleMode(DEGREES);
slider = createSlider(1, 60, 12, 1);
}
function draw() {
background(20);
translate(width / 2, height / 2);
fill(255);
text(slider.value(), -width/2+20,-height/2+20)
let radius = width*0.7;
noFill();
stroke(255);
strokeWeight(1);
ellipse(0, 0, radius);
for(let i = 0; i < 359.9999; i+=360/slider.value()) {
let angle = i;
let x = radius*cos(angle)/2;
let y = radius*sin(angle)/2;
stroke(255);
strokeWeight(1);
noFill();
line(0, 0, x, y);
circle(x, y, 8);
noStroke()
fill(255);
textSize(8);
let a = (angle == 0 || angle>=359.9999) ? ` 0°or 360°` : `${i.toFixed(2)}°`;
push();
textAlign(CENTER, CENTER);
translate(x*1.2, y*1.2);
rotate(angle >= 90 && angle <= 270 ? angle-180 : angle);
text(a, 0, 0);
pop();
}
}