Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

75
Vistas
¿Cómo puedo hacer que el punto particular en un objeto THREE.Points cambie su posición?

Trabajo en un proyecto personal para probar ecuaciones para tratar de simular el comportamiento de una galaxia. Hasta ahora he logrado colocar los Puntos como quería, pero ahora quiero tomar cada punto individualmente para cambiar su posición. El objetivo por ahora es tratar de aplicar con éxito un vector aleatorio a cada uno de los puntos. Lo intenté:

 var direction = new THREE.Vector3(0.00003, 0.000005, 0); points.position.add(direction);

pero esto se aplica a todos los Puntos. Entonces probé algo así:

 for (let i = 0; i < points.geometry.attributes.position.count; i++) { points.geometry.attributes.position[i] = Math.random() * 500 } points.geometry.attributes.position.needsUpdate = true;

Pero nada adjunto :( Creo que me perdí algo pero no sabía qué

Aquí el código completo en codepen: Codepen

about 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Cuando accedes:

points.geometry.attributes.position[i]

no obtienes la matriz de las posiciones de los vértices. Obtienes el BufferAttribute . Lo que probablemente quieras es la matriz dentro de BufferAttribute:

points.geometry.attributes.position.array[i]

Sin embargo, este todavía no es el enfoque recomendado. Three.js recomienda usar el método .getAttribute() :

 // Get the attribute const posAttribute = points.geometry.getAttribute("position"); // Get the array inside the attribute const posArray = posAttribute.array; // Increment by 3 at a time to access XYZ separately for(let i3 = 0; i3 < posArray.length; i3 += 3) { posArray[i3 + 0] = xPosition; posArray[i3 + 1] = yPosition; posArray[i3 + 2] = zPosition; } // Tell the attribute it needs updatin posAttribute.needsUpdate = true;
about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda