three.js TrackballControls

2023-02-16 17:49 更新

TrackballControls 與 OrbitControls 相類似。然而,它不能恒定保持?jǐn)z像機(jī)的up向量。 這意味著,如果攝像機(jī)繞過(guò)“北極”和“南極”,則不會(huì)翻轉(zhuǎn)以保持“右側(cè)朝上”。

例子

misc / controls / trackball

構(gòu)造函數(shù)

TrackballControls( camera : Camera, domElement : HTMLDOMElement )

camera: 渲染場(chǎng)景的攝像機(jī)。

domElement: 用于事件監(jiān)聽(tīng)的HTML元素。

創(chuàng)建一個(gè)新的 TrackballControls 實(shí)例。

事件

change

當(dāng)攝像機(jī)被控制器變換后觸發(fā)。

start

當(dāng)交互(例如觸摸)被初始化后觸發(fā)。

end

當(dāng)交互完成后觸發(fā)。

屬性

.domElement : HTMLDOMElement

該 HTMLDOMElement 用于監(jiān)聽(tīng)鼠標(biāo)/觸摸事件,該屬性必須在構(gòu)造函數(shù)中傳入。在此處改變它將不會(huì)設(shè)置新的事件監(jiān)聽(tīng)。

.dynamicDampingFactor : Number

設(shè)置阻尼的強(qiáng)度。僅在staticMoving設(shè)為false時(shí)考慮。默認(rèn)為0.2。

.enabled : Boolean

是否啟用控制器。

.keys : Array

該數(shù)組包含用于控制交互的按鍵代碼。

  • 當(dāng)定義的第一個(gè)按鍵按下后,所有的鼠標(biāo)交互(左/中/右鍵)表現(xiàn)為環(huán)繞。
  • 當(dāng)定義的第二個(gè)按鍵按下后,所有的鼠標(biāo)交互(左/中/右鍵)表現(xiàn)為縮放。
  • 當(dāng)定義的第三個(gè)按鍵按下后,所有的鼠標(biāo)交互(左/中/右鍵)表現(xiàn)為平移。

默認(rèn)為KeyA, KeyS, KeyD,分別表示A, S, D。

.maxDistance : Number

你能夠?qū)⑾鄼C(jī)向外移動(dòng)多少,其默認(rèn)值為Infinity。

.minDistance : Number

你能夠?qū)⑾鄼C(jī)向內(nèi)移動(dòng)多少,其默認(rèn)值為0。

.mouseButtons : Object

該對(duì)象包含由控件所使用的鼠標(biāo)操作的引用。

  • .LEFT 指定給 THREE.MOUSE.ROTATE
  • .MIDDLE 指定給 THREE.MOUSE.ZOOM
  • .RIGHT 指定給 THREE.MOUSE.PAN

.noPan : Boolean

是否禁用平移,默認(rèn)為false。

.noRotate : Boolean

是否禁用旋轉(zhuǎn),默認(rèn)為false。

.noZoom : Boolean

是否禁用縮放,默認(rèn)為false。

.object : Camera

正被控制的攝像機(jī)。

.panSpeed : Number

平移的速度,其默認(rèn)值為0.3。

.rotateSpeed : Number

旋轉(zhuǎn)的速度,其默認(rèn)值為1.0。

.screen : Object

表示屏幕的屬性。在handleResize()被調(diào)用時(shí)會(huì)自動(dòng)設(shè)置。

  • left: 表示到屏幕左側(cè)邊界的偏移量(單位為像素)。
  • top: 表示到屏幕頂部邊界的偏移量(單位為像素)。
  • width: 表示屏幕的寬度(單位為像素)。
  • height: 表示屏幕的高度(單位為像素)。

.staticMoving : Boolean

阻尼是否被禁用。默認(rèn)為false。

.zoomSpeed : Number

縮放的速度,其默認(rèn)值為1.2。

方法

.checkDistances () : undefined

確??刂破魑挥?[minDistance, maxDistance] 范圍內(nèi)。由update()調(diào)用。

.dispose () : undefined

若不再需要該控制器,則應(yīng)當(dāng)調(diào)用此函數(shù)。

.handleResize () : undefined

若應(yīng)用程序窗口大小發(fā)生改變,則應(yīng)當(dāng)調(diào)用此函數(shù)。

.panCamera () : undefined

如有必要,執(zhí)行平移。由update()調(diào)用。

.reset () : undefined

重置控制器到初始狀態(tài)。

.rotateCamera () : undefined

如有必要,旋轉(zhuǎn)相機(jī)。由update()調(diào)用。

.update () : undefined

更新控制器,常被用在動(dòng)畫循環(huán)中。

.zoomCamera () : undefined

如有必要,執(zhí)行縮放。由update()調(diào)用。

源代碼

examples/jsm/controls/TrackballControls.js


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)