使用thingiview.js,Three.js和trackballControls,我組裝了一個系統,我可以在其中上傳STL文件,然後將其呈現在畫布上。跟蹤球控制是非常好的一些調整,但我有一個問題:在three.js中放大鼠標指針
我想放大鼠標光標的點而不是網格/平面的中心。
我已經做了一個簡單的captureEvent來獲取鼠標的屏幕座標並跟蹤它,但是我在計算要在哪裏使用控制方案時遇到了問題。
我檢查了_zoomStart/_zoomEnd的東西(這讓我感到困惑,因爲它會離開「y」,我認爲它會是「z」)。但是當試圖添加_zoomStart.x時,它基本上忽略了它。
現在我可能不是一個大師,但我很舒服,通常都會感到很興奮。
我還想確保當我平移時,縮放和旋轉仍然基於物體的中心,而不是網格/平面的中心。
一直在尋找通過職位和例子的日子,但沒有真正找到任何答案。
我確定我沒有在正確的地方找正確的方向。一個有益的推動(或更好但很快的一腳)在正確的方向將真正讚賞。
編輯
this.zoomCamera = function() {
var factor = 1.0 + (_zoomEnd.y - _zoomStart.y) * _this.zoomSpeed;
if (factor !== 1.0 && factor > 0.0) {
_eye.multiplyScalar(factor);
if (_this.staticMoving) {
_zoomStart.copy(_zoomEnd);
} else {
_zoomStart.y += (_zoomEnd.y - _zoomStart.y) * this.dynamicDampingFactor;
}
}
};
我認爲上面的是我會去爲變焦改變。我不明白的是它被設置爲_zoomStart.y。但是,照原樣,我將如何實現x?
我的意思是,如果_zoomStart和_zoomEnd是Vector2,在上面的代碼中它定義了x?
confuzzled
請參閱:http://stackoverflow.com/questions/23994206/zoom-to-object-in-threejs/30514984#30514984 – RAM