3d控件 解决了!3D可视化应用中的封装问题


控件
开发人员可以使用ThingJS中内置的控件来集成一些功能应用的开发,或者定制开发控件来封装一些功能模块。
内置控件
目前,ThingJS有内置的“迷你地图”、“第一人称行走”和“自由飞行”控件供开发者使用。
需要注意的事项
目前上述内置控件暂时与地球的应用不兼容。
可以通过app.addControl()添加相应的控件。
使用app.removeControl()删除相应的控件。
小地图控件

3d控件 解决了!3D可视化应用中的封装问题


文章图片

按照以下方式创建代码:
app.addControl(
新东西。minimpcontrol({
宽度:200,
身高:200,
位置:东西。角型。右下方,
不透明度:0.8,
比例:1,
角度:0°,
【3d控件 解决了!3D可视化应用中的封装问题】鼠标滚轮:真
})
);
参数有以下含义:
width: 小地图宽度,单位 px;height: 小地图高度,单位 px;position: 相对屏幕坐标的定位位置;左上:THING.CornerType.LeftTop右上:THING.CornerType.RightTop右下:THING.CornerType.RightBottom左下:THING.CornerType.LeftBottomopacity:不透明度设置;scale: 小地图缩放比例;angle: 小地图旋转角度;mousewheel: 小地图是否支持鼠标缩放,默认为 false;参见示例
第一人称行走
这个控件可以控制“第一人称行走”的交互模式。
添加控件后,默认交互是键盘按键:
A:左移D:右移W:前进S:后退空格:跳跃(当开启重力时生效)鼠标:
按下左键旋转场景按照以下方式创建代码:
app.addControl(新玩意。WalkControl({
行走速度:0.02,//行走速度
旋转速度:0.25,//鼠标操作时场景旋转的速度
重力:29.8,//重量
眼睛高度:1.6,//视点高度
跳跃速度:10,//跳跃速度
EnableKeyRotate: false,//是否开启键盘控制旋转默认关闭
useconflict:false,//是否执行水平碰撞检测默认关闭
使用重力:true //默认情况下打开重力
}));
参数有以下含义:
walkSpeed:行走速度;turnSpeed:鼠标操作时旋转场景的速度;gravity:重量;eyeHeight:视点高度;jumpSpeed:跳跃速度;enableKeyRotate:是否开启键盘控制旋转,默认关闭,开启后按下 A 键向左旋转,按下 D 键向右旋转;useCollision:是否进行水平方向碰撞检测,默认关闭;useGravity:是否开启重力,默认开启,按空格键可进行跳跃,关闭后,空格键跳跃失效;参见示例
惯性飞行
添加控件后:
键盘:W A S D控制飞行Q E控制升降;
鼠标:按住左键拖动方向。
按照以下方式创建代码:
app.addControl(新玩意。fly control());
参见示例
自定义控件
开发人员可以自定义类,通过实现onAdd、onRemove、onUpdate方法扩展控件,开发自己的组件,方便功能模块的复用。
例如,定义一个CustomControl类(建议使用ES6来定义该类的语法):
//自定义控件
CustomControl类{
constructor() {
}
onAdd(app) {
}
onRemove() {
}
ONU update(){
}
}
//添加控件
var ctrl = app . addcontrol(new custom control());
//删除控件
app . remove control(ctrl);
添加控件时,将调用自定义控件的onAdd方法,并传入应用程序对象。
添加控件后,自定义控件的onUpdate方法每帧执行一次。
当控件被删除时,将调用自定义控件的onRemove方法。
本文由黄游物联网三维可视化开发平台组织发布。欢迎加入http://www.thingjs.com/发展集团225986500

    推荐阅读