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

317
Vistas
¿Cómo giro lentamente un cubo 90 grados en three.js?

Mi método actual de rotar el cubo lo rota inmediatamente. Me gustaría mostrar un movimiento giratorio para que el usuario pueda ver la rotación del cubo, en lugar de que los lados del cubo cambien de color inmediatamente cuando presiono la tecla 'a', 'w', 'd' o 's' (ya que la rotación es inmediata).

¿Cómo hago que el cubo gire lentamente?

El siguiente código es actualmente cómo estoy rotando el cubo:

 boxWidth = 1; boxHeight = 1; boxDepth = 1; const geometry = new THREE.BoxGeometry(boxWidth, boxHeight, boxDepth); const materials = [ new THREE.MeshBasicMaterial({color: 0x0000ff}), new THREE.MeshBasicMaterial({color: 0xffffff}), new THREE.MeshBasicMaterial({color: 0xffff00}), new THREE.MeshBasicMaterial({color: 0x008000}), new THREE.MeshBasicMaterial({color: 0xffa500}), new THREE.MeshBasicMaterial({color: 0xff0000}), ] const cube = new THREE.Mesh(geometry, materials); function onDocumentKeyDown(event) { console.log(event); if (event.keyCode == 87) { // w button cube.rotateX(Math.PI / 2); } else if (event.keyCode == 83) { // s button cube.rotateX(-Math.PI / 2); } else if (event.keyCode == 65) { // a button cube.rotateY(-Math.PI / 2); } else if (event.keyCode == 68) { // d button cube.rotateY(Math.PI / 2); } }; document.addEventListener("keydown", onDocumentKeyDown, false);
about 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Un enfoque para animar una orientación a otra es Quaternion.rotateTowards() .

Lo que necesita para usar este método es una fuente y una orientación de destino, así como el paso angular que describe qué tan rápido gira su cubo. El siguiente enlace muestra el uso del método en un pequeño ejemplo. La sección de código relevante está en la función animate() y se ve así:

 const delta = clock.getDelta(); if ( ! mesh.quaternion.equals( targetQuaternion ) ) { const step = speed * delta; mesh.quaternion.rotateTowards( targetQuaternion, step ); }

Este código esencialmente significa: Siempre que la orientación de la malla no sea igual a la orientación del objetivo, realice una transición gradual de la orientación actual a la del objetivo.

https://tresjs.org/ejemplos/webgl_math_orientation_transform

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