zjs_project 1 vuosi sitten
vanhempi
commit
0a055ac510
1 muutettua tiedostoa jossa 24 lisäystä ja 15 poistoa
  1. 24 15
      src/pages/webgl_rxdz_roam/webgl_rxdz_roam.vue

+ 24 - 15
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){
@@ -601,11 +606,15 @@
 				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);
+				// setTimeout(()=> {
+				// }, 10);
 				// }catch(e){
 				// 	alert("***positionCamer-error***"+e)
 				// }
@@ -651,8 +660,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 +673,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;//放开限制,可以再次点击
 				})