mi script no funciona. Se suponía que crearía círculos aleatorios, todos tocando la parte inferior del lienzo, con su radio reduciendo cada círculo por la cantidad de círculos.
Aquí está el código:
for (var i = 0; i < NUM_CIRCLES; i++){ var circle = new Circle(radius); circle.setPosition(CENTER_X,CENTER_Y); circle.setColor(color); add(circle); radius /= i; CENTER_Y = getHeight() - radius; color = Randomizer.nextColor(); }Bien, aquí está el código completo:
var NUM_CIRCLES = 30; var BIG_RADIUS = 180; var color = Randomizer.nextColor(); var radius = BIG_RADIUS; var CENTER_X = getWidth() / 2; var CENTER_Y = getHeight() - radius; function start(){ for (var i = 0; i < NUM_CIRCLES; i++){ var circle = new Circle(radius); circle.setPosition(CENTER_X,CENTER_Y); circle.setColor(color); add(circle); radius /= i; CENTER_Y = getHeight() - radius; color = Randomizer.nextColor(); } }según tengo entendido, está tratando de producir círculos de mayor a menor reduciendo el radio de ellos por número de círculos
para lograr eso, haga eachReduce = radius / numberofcircles y utilícelo como cada Reducir constante para reducir cada círculo por ese número para lograr un tamaño más grande a más pequeño hasta cero, eche un vistazo al ejemplo a continuación
let numofcir = 10, radius = 80, reduceEachBy = radius / numofcir, offset = radius / 2 function setup() { createCanvas(640, 360); noLoop() } function draw() { background(0) stroke(255) noFill() for(let i=0;i < numofcir;i++){ // in p5 ellipse creates circle by x and y radius ellipse(offset + (i * offset),150,radius,radius) radius -= reduceEachBy } } <script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.4.0/p5.min.js" integrity="sha512-N4kV7GkNv7QR7RX9YF/olywyIgIwNvfEe2nZtfyj73HdjCUkAfOBDbcuJ/cTaN04JKRnw1YG1wnUyNKMsNgg3g==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>