相机操作
接口列表
| 接口名称 | 说明 |
|---|---|
| 旋转相机 | 旋转相机 |
| 平移相机 | 平移相机 |
| 缩放相机 | 缩放相机 |
| 设置向上方向 | 设置向上方向 |
获取相机对象,通过场景获取,代码如下:
let camera = scene.getCurrentViewPort().getCamera()
旋转相机
//旋转相机需先创建旋转四元数,对应的类型为M3D.M3DMath.Quaternion
//构造函数有多种方式
//1、M3D.M3DMath.Quaternion;根据旋转四元数新创建一个实例
//2、M3D.M3DMath.Matrix3;根据矩阵创建旋转四元数实例,矩阵数据为坐标轴三个朝向,每一列代表一个朝向,分别为x,y,z
//3、angle;根据旋转角度创建旋转四元数实例,类型为number
//4、data;根据二进制数据创建旋转四元数实例,类型为Float32Array,取data的0,1,2,3下标值,对应w,x,y,z
//5、angle,axis;根据旋转角度以及旋转轴创建旋转四元数实例,类型为number,M3D.M3DMath.Vector3
//6、x,y,z;根据三个方向的旋转角度创建四元数实例,number类型,旋转时先旋转Z,再旋转X,再旋转Y
//7、start,end;根据开始向量以及结束向量创建四元数实例,类型为M3D.M3DMath.Vector3
//8、xAxis,yAxis,zAxis;根据坐标轴三个方向创建旋转四元数,分别对应X轴方向,Y轴方向,Z轴方向,类型为M3D.M3DMath.Vector3
//9、w,x,y,z;根据四元数数据创建新的旋转四元数实例
let quaternion = new M3D.M3DMath.Quaternion(x,y,z);
//设置相机的旋转中心点,参数为三维坐标点M3D.M3DMath.Vector3
camera.setRotateCenter(center);
//通过相机接口进行旋转,第二个参数为在那种方式下旋转,一般为在世界坐标系下旋转为M3D.TS_WORLD
camera.rotateAroundCenter(quaternion,M3D.TS_WORLD);
平移相机
//调用camera的接口设置相机平移
//参数delta为平移量,类型为M3D.M3DMath.Vector3;space为平移方式,一般为在世界坐标系下旋转为M3D.TS_WORLD
camera.translate(delta,space);
缩放相机
//调用camera的接口设置相机缩放
//参数为缩放比例,number类型,基准为当前缩放比例,缩放比例限制范围为0.01-1000
camera.zoomView(scaleFactor);
//缩放相机后需调用接口更新视口
camera.markDirty();
设置向上方向
//设置向上方向需先设置配置,再调用接口设置,下面的两个接口都需要调用,参数第一个代表配置名,第二个代表向上方向
//0:X+ (1,0,0);1:X- (-1,0,0);2:Y+ (0,1,0);3:Y- (0,-1,0);4:Z+ (0,0,1);5:Z- (0,0,-1)
M3D.Config.Parameters.getInstance().setParameter(M3D.Config.verticalAxis,2);
M3D.Config.ViewPortParameters.getInstance().setParameter(M3D.Config.verticalAxis,2);
//再调用设置向上方向的接口
scene.getCurrentViewPort().setUpDirection(new M3D.M3DMath.Vector3(0,1,0));