前言
創(chuàng)新互聯(lián)公司是一家專業(yè)提供綏芬河企業(yè)網(wǎng)站建設(shè),專注與網(wǎng)站建設(shè)、成都網(wǎng)站建設(shè)、H5網(wǎng)站設(shè)計、小程序制作等業(yè)務(wù)。10年已為綏芬河眾多企業(yè)、政府機構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站建設(shè)公司優(yōu)惠進行中。
本文主要給大家介紹了關(guān)于Three.js利用orbit controls插件(軌道控制)控制模型交互動作的相關(guān)內(nèi)容,這個效果相對于第八節(jié)的軌跡球插件使用上感覺要好,雖然軌跡球插件可以來回的滾動,但是容易分辨不清楚上下左右的關(guān)系,容易混亂,適合調(diào)試,而軌道控制插件orbit則適合客戶使用,還不會產(chǎn)生混亂效果。下面講一下使用。
(1)首先引入插件,文件地址在官方案例的examples/js/controls/OrbitControls.js。
(2)然后實例化函數(shù),把相機和渲染器的dom傳入,并設(shè)置相關(guān)設(shè)置。
//用戶交互插件 鼠標左鍵按住旋轉(zhuǎn),右鍵按住平移,滾輪縮放 var controls; function initControls() { controls = new THREE.OrbitControls( camera, renderer.domElement ); // 如果使用animate方法時,將此函數(shù)刪除 //controls.addEventListener( 'change', render ); // 使動畫循環(huán)使用時阻尼或自轉(zhuǎn) 意思是否有慣性 controls.enableDamping = true; //動態(tài)阻尼系數(shù) 就是鼠標拖拽旋轉(zhuǎn)靈敏度 //controls.dampingFactor = 0.25; //是否可以縮放 controls.enableZoom = true; //是否自動旋轉(zhuǎn) controls.autoRotate = true; //設(shè)置相機距離原點的最遠距離 controls.minDistance = 200; //設(shè)置相機距離原點的最遠距離 controls.maxDistance = 600; //是否開啟右鍵拖拽 controls.enablePan = true; }
(3)最后,在animate函數(shù)內(nèi)調(diào)用orbit的update()
更新。
function animate() { //更新控制器 controls.update(); render(); //更新性能插件 stats.update(); requestAnimationFrame(animate); }
就實現(xiàn)了相關(guān)效果。
下面是全部案例代碼:
Title
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對創(chuàng)新互聯(lián)的支持。