Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

190
Views
¿Se puede desempaquetar (difundir) una expresión como un parámetro en javascript?

Estoy tratando de calcular ciertas posiciones y tamaños de rectángulos en la cuadrícula, y me gustaría aleatorizarlos por cada mosaico.

Se puede hacer algo como esto:

 for (let x = 0; x < p.width; x += tiles) { for (let y = 0; y < p.height; y += tiles) { let subItemPerTile = p.random(itemsPerTile); // This should contain random X/Y options using -i, +i, *i in a list let coordinatesPerTile = [['x', 'y'], ['x-i', 'y-i'], ['x+i', 'y-i']]; for (let i = tilesInGrid; i > 0; i--) { p.fill(p.color(p.random(255))); let s = (tiles * i) / subItemPerTile; // This is working method where I'd like to substitute randomly, x,y,s from the list above // p.square(x, y, (tiles * i) / subItemPerTile); //This was desired way, and I had 's' as the part of the list, but removed it until I figure out if this can be done this way //p.square.apply(null, p.random(coordinatesPerTile); //p.square(...coordinatesPerTile); // This is me debugging on second item in the list let coords = coordinatesPerTile[1]; x = eval(coords[0]); y = eval(coords[1]); console.log(coords[0]); // let s = eval(coords[2]); // console.log(s); // Below works for coordinatesPerTile[0], but not for coordinatesPerTile[1], I don't understand why p.square(x, y, s); }
about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

No hay una conversión implícita de una cadena que incluye javascript al resultado de evaluar ese javascript en el ámbito local, y cualquier mecanismo para hacerlo sería una idea extremadamente mala. Esto es probablemente lo que quieres:

 function sketch(p) { const tileSize = 20; const itemsPerTile = [1, 2, 3, 4]; p.setup = function() { p.createCanvas(300, 300); p.frameRate(1); }; p.draw = function() { for (let x = 0; x < p.width; x += tileSize) { for (let y = 0; y < p.height; y += tileSize) { let subItemPerTile = p.random(itemsPerTile); for (let i = subItemPerTile; i > 0; i--) { // By simply declaring this inside the for loop that // defines i, the code is quite simple let coordinatesPerTile = [ [x, y], [x - i, y - i], [x + i, y - i] ]; p.fill(p.color(p.random(255))); let s = (tileSize * i) / subItemPerTile; p.square(...p.random(coordinatesPerTile), s); } } } }; } new p5(sketch);
 <script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.4.0/p5.js"></script>

Debido a que su código estaba incompleto, hubo muchas conjeturas para hacer que el boceto anterior hiciera algo útil.

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!