千家信息网

TE中如何实现动态对象创建

发表于:2024-11-17 作者:千家信息网编辑
千家信息网最后更新 2024年11月17日,这篇文章主要为大家展示了"TE中如何实现动态对象创建",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"TE中如何实现动态对象创建"这篇文章吧。一般在系统的开发
千家信息网最后更新 2024年11月17日TE中如何实现动态对象创建

这篇文章主要为大家展示了"TE中如何实现动态对象创建",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"TE中如何实现动态对象创建"这篇文章吧。

一般在系统的开发中,TE创建动态对象是用Creator下的CreateDynamicObject,这个方式是sdk封装好的,但是在拐弯方面的调整需要一定的技巧。

TE的样例中,还提供了另一种方式的动态对象创建,并且有示例的JavaScript脚本代码,这个动态对象的创建思路是通过创建一个模型,根据时间的变化,动态的更改模型的位置,位置的变化在onframe中,变化频率是很高的,显示出来的效果也比较连贯。

样例JavaScript代码比较简单,如下所示:

//创建一个默认位置

var pos = _sgworld.Creator.CreatePosition(-122.38050, // x

37.62331, // y

40.0, // height

3, // height type

297.0, // yaw

15.0, // pitch

0, // roll

0 // dist

);

//在默认位置上创建一个模型

model = _sgworld.Creator.CreateModel(pos, "D:\\c5.xpc", 1);

model.Attachment.AutoDetach = false;

//飞到模型

_sgworld.Navigate.FlyTo(model);

//在onframe中实现,具体挂接onframe参见api文档

function sOnFrame() {

//判断model对象不为空

if(model) {

//根据距离和角度移动模型位置,样例中是绕圈移动模型

var distToMove = (400 * 1000 / 3600) * (new Date().getTime() - time.getTime()) / 1000;

model.Position = model.Position.Move(distToMove, model.Position.Yaw + 0.1, model.Position.Pitch);

//更新时间

time = new Date();

}

效果图:

以上是"TE中如何实现动态对象创建"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

0