Forráskód Böngészése

Merge branch 'feature_UI调整' of http://101.231.166.56:3000/elab-damai-h5/h5-webgl-program into feature_UI调整

caodongdong 1 éve
szülő
commit
dadba30c98
1 módosított fájl, 22 hozzáadás és 19 törlés
  1. 22 19
      src/pages/webgl_rxdz_roam/webgl_rxdz_roam.vue

+ 22 - 19
src/pages/webgl_rxdz_roam/webgl_rxdz_roam.vue

@@ -211,18 +211,18 @@
                 container.appendChild( renderer.domElement );
 				
 				controls = new OrbitControls( camera, renderer.domElement );
-				controls.screenSpacePanning = true;
-				controls.enableDamping = true;
-				controls.minDistance = 0.01;
+				controls.enableDamping = true;//启动缓动
+				controls.minDistance = 0.0001;
 				controls.maxDistance = 10;
 				controls.minPolarAngle = 0;// 默认0
 				controls.maxPolarAngle = Math.PI / 2; // 默认Math.PI,即可以向下旋转到的视角。
-				controls.target.set(  that.controlStarPosition.x, that.controlStarPosition.y, that.controlStarPosition.z);
-				
+				// controls.target.set(  that.controlStarPosition.x, that.controlStarPosition.y, that.controlStarPosition.z);
 				controls.enableZoom = true;//启用摄像机的缩放
-				controls.enablePan = false;//禁用摄像机平移
+				controls.enablePan = true;//禁用摄像机平移
 				controls.enableRotate = true;//启用摄像机水平或垂直旋转
-				controls.zoomToCursor = true;
+				// controls.zoomToCursor = true;
+				
+				// controls.target.copy(camera.position);
 				// controls.update();
 				// 监听相机移动事件-限制只能在当前空间范围内移动
 				// controls.addEventListener('change', () => {
@@ -572,7 +572,12 @@
 					y:1.5 + Math.tan(_hdY),
 					z:(cameraNewPosition.z - Math.cos(_hd)),
 				}
-				return {cameraNewPosition,targetNewPosition}
+				let lookPosition = {
+					x:cameraNewPosition.x + (Math.sin(_hd)*0.01),
+					y:1.5 + Math.tan(_hdY),
+					z:(cameraNewPosition.z - (Math.cos(_hd))*0.01),
+				}
+				return {cameraNewPosition,targetNewPosition,lookPosition}
 			}
 			//直接定位到摄像头位置
 			function positionCamer(mesh=null){
@@ -592,7 +597,6 @@
 						presentY:chooseMesh.presentY,
 					}]
 				}
-				// try{
 				boundary = new THREE.Box3(
 					new THREE.Vector3(chooseMesh.centerX/100 - chooseMesh.spaceWidth/100/2 + 0.1, 0, -chooseMesh.centerY/100 - chooseMesh.spaceHeight/100/2 + 0.1), // 边界框的最小点
 					new THREE.Vector3(chooseMesh.centerX/100 + chooseMesh.spaceWidth/100/2 - 0.1, 2.7, -chooseMesh.centerY/100 + chooseMesh.spaceHeight/100/2 - 0.1) // 边界框的最大点
@@ -601,14 +605,13 @@
 				let data = roamPositionHandle();
 				let cameraNewPosition = data.cameraNewPosition;
 				let targetNewPosition = data.targetNewPosition;
+				let lookPosition = data.lookPosition;
 				creatMoveTip(cameraNewPosition);//创建移动的地标
 				camera.position.set(cameraNewPosition.x, cameraNewPosition.y, cameraNewPosition.z);
-				// controls.target.set(targetNewPosition.x,targetNewPosition.y,targetNewPosition.z);
-				controls.target.set(cameraNewPosition.x,cameraNewPosition.y,cameraNewPosition.z);
+				controls.target.set(lookPosition.x,lookPosition.y,lookPosition.z);
+				// controls.target.set(cameraNewPosition.x,cameraNewPosition.y,cameraNewPosition.z);
+				// controls.target.copy(camera.position);
 				camera.lookAt(targetNewPosition.x,targetNewPosition.y,targetNewPosition.z);
-				// }catch(e){
-				// 	alert("***positionCamer-error***"+e)
-				// }
 			}
 			// oldP  相机原来的位置
             // oldT  target原来的位置
@@ -651,8 +654,8 @@
 					camera.position.x = object.x1;
 					camera.position.y = object.y1;
 					camera.position.z = object.z1;
-					let newTarget = new THREE.Vector3(object.x3,object.y3,object.z3);
-					camera.up.copy(newTarget);
+					// let newTarget = new THREE.Vector3(object.x3,object.y3,object.z3);
+					// camera.up.copy(newTarget);
 					camera.lookAt(object.x2,object.y2,object.z2);
 					// controls.target.x = object.x2;
 					// controls.target.y = object.y2;
@@ -664,9 +667,9 @@
 					controls.target.y = newT.y;
 					controls.target.z = newT.z;
 					//修正最后的视角
-					let up = new THREE.Vector3(newUp.x,newUp.y,newUp.z);
-					camera.up.copy(up);
-					camera.lookAt(controls.target.x,controls.target.y,controls.target.z);
+					// let up = new THREE.Vector3(newUp.x,newUp.y,newUp.z);
+					// camera.up.copy(up);
+					camera.lookAt(newT.x,newT.y,newT.z);
 					tweenCameraAnma = false;
 					that.repeatFlag = false;//放开限制,可以再次点击
 				})