• Jobs
  • About Us
  • Jobs
    • Home
    • Jobs
    • Courses and challenges
  • Businesses
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

222
Views
¿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 3 years ago · Santiago Trujillo
1 answers
Answer question

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 3 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Show me some job opportunities
There's an error!