threejs修改滾輪移動的縮放倍數

2021-10-05 23:23:02 字數 1465 閱讀 5330

這篇部落格裡實現了「滑鼠上下滑輪實現放大縮小」的效果:

//監聽滑鼠滾動事件

canvas.

addeventlistener

('mousewheel'

, mousewheel,

false

);

(1)搜尋本專案已經使用的orbitcontrols.js(控制滑鼠行為)中的「mousewheel」關鍵字,得知其監聽

「function onmousewheel(event)方法」:

scope.domelement.

addeventlistener

('wheel'

, onmousewheel,

false

);

(2)進入 function onmousewheel(event):

function

onmousewheel

( event )

function

handlemousewheel

( event )

else

if( event.deltay >0)

scope.

update()

;}

(4)結合threejs使用的perspectivecamera的zoom屬性,是「獲取或者設定攝像機的縮放倍數,其預設值為1」,猜想dollyout和dollyin傳入的引數getzoomscale()就是需要修改的縮放倍數,於是進入getzoomscale()函式:

function

getzoomscale()

(5)搜尋zoomspeed查到 this.zoomspeed的預設值是1.0,修改該值即可。

...

// this option actually enables dollying in and out; left as "zoom" for backwards compatibility.

// set to false to disable zooming

this

.enablezoom =

true

;this

.zoomspeed =

1.0;

// set to false to disable rotating

this

.enablerotate =

true

;this

.rotatespeed =

1.0;

...

總結:

(1)直接修改threejs的perspectivecamera的zoom屬性,是沒有效果滴。

(2)本文記錄了探索修改原始碼的過程;原始碼寫的很清晰,修改起來就很快,很值得學習。

View的移動和縮放

移動乙個 view 1.想要移動乙個view,我們可以在這個view上 或者它的子控制項上 設定乙個touchlistener,然後在ontouch 方法中新增移動的響應處理。pipview findviewbyid r.id.pip move setontouchlistener new onto...

WPF Incanvas中墨跡的移動縮放 與復位

public partial class mainwindow window void grid previewmouseup object sender,mousebuttoneventargs e void grid previewmousemove object sender,mouseeve...

Webapp meta標籤解決移動縮放的問題

meta name viewport content width device width initial scale 1.0 minimum scale 1.0 miximum 1.0 user scalable yes 下面是對於這個標籤的具體說明 viewport 語法介紹 width wid...