three.js TrackballControls

2023-02-16 17:49 更新

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

例子

misc / controls / trackball

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

TrackballControls( camera : Camera, domElement : HTMLDOMElement )

camera: 渲染場景的攝像機。

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

創(chuàng)建一個新的 TrackballControls 實例。

事件

change

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

start

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

end

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

屬性

.domElement : HTMLDOMElement

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

.dynamicDampingFactor : Number

設(shè)置阻尼的強度。僅在staticMoving設(shè)為false時考慮。默認為0.2。

.enabled : Boolean

是否啟用控制器。

.keys : Array

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

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

默認為KeyA, KeyS, KeyD,分別表示A, S, D。

.maxDistance : Number

你能夠?qū)⑾鄼C向外移動多少,其默認值為Infinity。

.minDistance : Number

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

.mouseButtons : Object

該對象包含由控件所使用的鼠標操作的引用。

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

.noPan : Boolean

是否禁用平移,默認為false。

.noRotate : Boolean

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

.noZoom : Boolean

是否禁用縮放,默認為false。

.object : Camera

正被控制的攝像機。

.panSpeed : Number

平移的速度,其默認值為0.3。

.rotateSpeed : Number

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

.screen : Object

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

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

.staticMoving : Boolean

阻尼是否被禁用。默認為false。

.zoomSpeed : Number

縮放的速度,其默認值為1.2。

方法

.checkDistances () : undefined

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

.dispose () : undefined

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

.handleResize () : undefined

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

.panCamera () : undefined

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

.reset () : undefined

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

.rotateCamera () : undefined

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

.update () : undefined

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

.zoomCamera () : undefined

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

源代碼

examples/jsm/controls/TrackballControls.js


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

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號