|
@@ -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;//放开限制,可以再次点击
|
|
|
})
|