distance *= Math.tan(scope.object.fov / 2 * Math.PI / 180); // var xd = 2 * distance * deltaX / element.clientHeight; // var yd = 2 * distance * deltaY / element.clientHeight; // panLeft( xd, scope.object.matrix ); // panUp( yd, scope.object.matrix ); var deltaX = pxl * element.clientHeight / (2 * distance); var deltaY = pyl * element.clientHeight / (2 * distance) * (moveDown ? -1 : 1); return [deltaX, deltaY]; } else if ( scope.object instanceof OrthographicCamera ) { // orthographic // panLeft( deltaX * ( scope.object.right - scope.object.left ) / scope.object.zoom / element.clientWidth, scope.object.matrix ); // panUp( deltaY * ( scope.object.top - scope.object.bottom ) / scope.object.zoom / element.clientHeight, scope.object.matrix ); var deltaX = pxl * element.clientWidth * scope.object.zoom / (scope.object.right - scope.object.left); var deltaY = pyl * element.clientHeight * scope.object.zoom / (scope.object.top - scope.object.bottom); return [deltaX, deltaY]; } else { // camera neither orthographic nor perspective console.warn( 'WARNING: OrbitControls.js encountered an unknown camera type - pan disabled.' ); } } 7、2/3D切换
23D切换的重要内容就是当相机的视线轴与场景的平面垂直时,应用平行投影,如许用户只能看到顶面给人的感到就是2D视图。所以要根据透视的视锥体计算出平行投影的世景体。
推荐阅读
出了Linux故障找不到方法?看大牛简单、朴实的解决思路
【技巧沙龙】AI开辟者拭魅战营-7分钟打造1个定制技能。7月22号,我们等你一路!与windows系同一样,linux操作体系也会存在很多问题和故障,很多linux新手都害怕故障,面对出现的问题显得无可奈何,更有>>>详细阅读
本文标题:Threejs开发3D地图实践总结
地址:http://www.17bianji.com/lsqh/36340.html
1/2 1