修改Threejs里的OrbitControls右键上下移动控制视图上下移动

在原生的OrbitControls中,通过修改panUp方法可以实现右键上下移动时视图沿Y轴平移,而不是默认的缩放。关键在于将v.setFromMatrixColumn(objectMatrix,1)设置为获取对象矩阵的Y列并乘以距离作为平移量。
摘要由CSDN通过智能技术生成

在原生的OrbitControls里,右键上下移动,结果是视图放大缩小,这样的结果不是我的需求。应该是右键上下移动,视图也上下移动。那么怎么修改呢?

如下:修改一下panUp的方法即可,注释的部分是原来的代码。

var panUp = function () {

 

        var v = new THREE.Vector3();

 

        return function panUp( distance, objectMatrix ) {

 

            // if ( scope.screenSpacePanning === true ) {

 

            //  v.setFromMatrixColumn( objectMatrix, 1 );

 

            // } else {

 

            //  v.setFromMatrixColumn( objectMatrix, 0 );

            //  v.crossVectors( scope.object.up, v );

 

            // }

            v.setFromMatrixColumn( objectMatrix, 1 ); // get y column of objectMatrix

            v.multiplyScalar( distance );

 

            panOffset.add( v );

 

        };

 

    }();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值