我使用WebGlRenderer顯示帶有Three.js的OBJ元素,現在我想允許用戶在任何方向圍繞對象旋轉相機,我已經找到了這個答案:使用Three.js在物體周圍旋轉相機
Rotate camera in Three.js with mouse
但是這兩個例子返回我的錯誤,第一個說,投影機沒有定義,我不知道它與「投影機」的意思。我只是一個簡單的相機,物體和一些光。 第二個代碼表示未定義不是函數。
有人知道如何得到我需要的結果嗎?
我使用WebGlRenderer顯示帶有Three.js的OBJ元素,現在我想允許用戶在任何方向圍繞對象旋轉相機,我已經找到了這個答案:使用Three.js在物體周圍旋轉相機
Rotate camera in Three.js with mouse
但是這兩個例子返回我的錯誤,第一個說,投影機沒有定義,我不知道它與「投影機」的意思。我只是一個簡單的相機,物體和一些光。 第二個代碼表示未定義不是函數。
有人知道如何得到我需要的結果嗎?
這是你想要什麼:http://threejs.org/examples/misc_controls_orbit.html
包括軌道控制(你已經下載了它們之後):
<script src="js/controls/OrbitControls.js"></script>
設置變量:
var controls;
裝上控制到攝像頭並添加聽衆:
controls = new THREE.OrbitControls(camera);
controls.addEventListener('change', render);
個
,並在你的動畫功能更新的控件:
controls.update();
[更新] controls.autoRotate = true;
(在V73測試。最近版本的OrbitControls.js已經添加了這個控件。)
的確,如果用您選擇的對象替換'camera',對象將會旋轉。但是如果周圍有其他物體(例如地板上的網格),它們仍然會靜止不動。這可能是你想要的,或者它可能看起來很奇怪。 (?想象一下在椅子旋轉浮動地板上面......)
我選擇從我的代碼覆蓋從OrbitControls.JS中心對象初始化後,軌道控制
controls = new THREE.OrbitControls(camera, renderer.domElement);
…
controls.center = new THREE.Vector3(
chair.position.x,
chair.position.y,
chair.position.z
);
(免責聲明:我有印象有不同版本的OrbitControls.js左右,但我假設他們都使用這個中心對象)
謝謝,但現在是圍繞相機旋轉的項目......我如何反轉行爲?謝謝 –
@FezVrasta你可以選擇什麼軌道,所以而不是相機,你可以把一個對象,如果你喜歡例如「球」,所以它會是:新THREE.OrbitControls(sphere); –
謝謝,但我不能使它的工作,我使用此代碼來加載OBJ:http://jsfiddle.net/7aqmB/但如果我在** OrbitControls **中使用_object_它說該對象是未定義的... –