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

203
Views
No se pueden leer las propiedades de undefined (leer 'geometría'), pero ¿funciona la codificación?

Estoy codificando una simulación/animación de three.js y me cuesta entender por qué funciona la codificación de un índice de matriz para una instanciación de clase personalizada ("physicsObjects[4]"), pero uso la variable i en un bucle for ("physicsObjects[ i]") no lo hace.

Cuando tiene éxito, updateTail() ajusta el atributo de posición de línea de three.js, y luego debo configurar needsUpdate = true como se muestra en la documentación de Three.js para volver a dibujar. En el primer ejemplo, funciona correctamente (aunque solo para UNO de los objetos, 4).

physicsObjects[i] tiene una propiedad .tail que es TRES.LineSegments(geometry,material)

 for (let i = 0; i < physicsObjects.length; i++) { physicsObjects[4].updateTail() physicsObjects[4].tail.geometry.attributes.position.needsUpdate = true }

También funciona para 2 de mis objetos físicos si hago esto.

 for (let i = 0; i < physicsObjects.length; i++) { physicsObjects[4].updateTail() physicsObjects[4].tail.geometry.attributes.position.needsUpdate = true physicsObjects[7].updateTail() physicsObjects[7].tail.geometry.attributes.position.needsUpdate = true }

Pero si quiero iterar, NO funciona. ¿La única diferencia es que estoy indexando con 'i' en lugar de un índice codificado?

 for (let i = 0; i < physicsObjects.length; i++) { physicsObjects[i].updateTail() physicsObjects[i].tail.geometry.attributes.position.needsUpdate = true }

Este es el error que recibo.

 Uncaught TypeError: Cannot read properties of undefined (reading 'geometry') at animate (app.js:159:32)

Aquí está mi bucle de dibujo animate () completo como referencia:

 function animate() { //Frame Start up requestAnimationFrame(animate); //Force Application if (frameIndex % 1 == 0) { for (let i = 0; i < physicsObjects.length; i++) { for (let j = 0; j < physicsObjects.length; j++) { if (i !== j) { let f = physicsObjects[i].attract(physicsObjects[j]) physicsObjects[i].applyForce(f) physicsObjects[i].updatePhysics() physicsObjects[i].updateGeometry() } } } } //Testing adding a tail to the objects for (let i = 0; i < physicsObjects.length; i++) { physicsObjects[4].updateTail() physicsObjects[4].tail.geometry.attributes.position.needsUpdate = true } const time = performance.now(); controls.update(time, prevTime) renderer.render(scene, camera); stats.update() //Frame Shut Down prevTime = time; }

¿Por qué no puedo iterar con un bucle?

about 4 years ago · Juan Pablo Isaza
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!