這篇部落格裡實現了「滑鼠上下滑輪實現放大縮小」的效果:
//監聽滑鼠滾動事件
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...