Обновление события onchange THREE.Mesh.position с помощью ползунка - PullRequest
0 голосов
/ 01 февраля 2019

Привет всем, я работаю над трансляцией мешей с использованием (библиотека Three.js).Я использую ползунки HTML для обновления значений, чтобы их можно было изменить с помощью JavaScript.

Мой пример:

description image

Это работает нормально, ноЯ не знаю, что происходит со слушателями событий ползунков.В основном происходит то, что функция находится в атрибуте onchange , но похоже, что она работает как onclick :

<input type="range" value=n; min=n; max=n; 
    onchange="set_Radius()";
>
input type="range" value=n; min=n; max=n; 
    onchange="set_Theta()";
>

Чтобы переместить куб, я использую:

animate() {
   var sphericalPos = new THREE.Spherical(get_Radius(), get_Theta(), 0);  
   cube_Mesh.position.setFromSpherical(sphericalPos);
}

ВЫПУСК: Это работает только тогда, когда я отпускаю щелчок мыши на ползунке.Например, если я переместу радиус ползунка с 50 на 150, он будет обновлять только 50 и 150, но не между цифрами.

Q1: Есть ли способ, которым я могу решить вышеуказанную проблему?

Q2: Можно ли заблокировать направление грани куба, чтобы он мог смотреть на начало координат в любомположение (например, аналогично OrbitController для события мыши L_Click)?

1 Ответ

0 голосов
/ 01 февраля 2019
  1. Используйте oninput прослушиватель событий вместо onchange.
  2. Используйте .lookAt() метод для привязки куба к источнику.
...