千家信息网

js怎么实现沿线的onframe行走

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,这篇文章主要介绍"js怎么实现沿线的onframe行走",在日常操作中,相信很多人在js怎么实现沿线的onframe行走问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"j
千家信息网最后更新 2026年10月31日js怎么实现沿线的onframe行走

这篇文章主要介绍"js怎么实现沿线的onframe行走",在日常操作中,相信很多人在js怎么实现沿线的onframe行走问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"js怎么实现沿线的onframe行走"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

下边列举一个在实际中的应用,如何沿着一条做好的线,在线上动态的移动一个模型文件。

以下是具体的js代码:

//一个通用函数,如何把te中geometry的点类型,转换成position位置

function pointToPostion(point,altitudeType)

{

var postionl=SGWorld.Creator.CreatePosition(point.X,point.Y,point.Z,altitudeType,0,0,0,0);

return postionl;

}

//定义行走的模型,时间等参数

var model = null;

var time;

var linePointCount=0;

var i;

var altitudeType;

var linePoint;

function Init()

{

i=0;

//找到事先画好的线对象

var item = SGWorld.ProjectTree.FindItem("线\\路径");

var poly = SGWorld.ProjectTree.GetObject(item);

//获得线对象的geometry和高度类型,线中包含的点

var polygonGeometry = poly.Geometry;

altitudeType=poly.Position.AltitudeType;

linePoint= polygonGeometry.Points;

linePointCount=polygonGeometry.Points.Count;

var fpos=pointToPostion(linePoint.Item(i),altitudeType);

//初始化时间和onframe事件

time = new Date();

SGWorld.AttachEvent("onFrame", onFrame); //新建一个行走的模型

model = SGWorld.Creator.CreateModel(fpos, "D:\\skylinedata\\小人.xpl", 3);

}

//onframe时间实现,这是代码的关键

function onFrame()

{

//按照线中的点进行行走,从第一个点到最后一个,当大于点数,路径走 完

if(i

{

//取当前点和后一个点,计算距离,起点指向终点的角度

var fpos=pointToPostion(linePoint.Item(i),altitudeType);

var spos=pointToPostion(linePoint.Item(i+1),altitudeType);

var distance=fpos.DistanceTo(spos);

var aimTo=fpos.AimTo(spos);

//计算onframe执行一次的时间,对象行走的距离

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

//计算当前距离是否超高当前线段距离,如超过则切换线中下一个点

var nowDis=fpos.DistanceTo(model.Position);

if(nowDis

{

//设置模型的位置

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

model.Position.Pitch=0;

}

else

{

//切换下一个点

model.Position = spos;

i++;

}

time = new Date();

}

else

{

SGWorld.DetachEvent("onFrame", onFrame);

}

}

到此,关于"js怎么实现沿线的onframe行走"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

沿线 时间 模型 学习 对象 代码 位置 更多 类型 路径 切换 帮助 实用 接下来 事件 关键 函数 前点 动态 参数 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技上市公司 友谊互联网络科技 中国互联网金融科技基金 金融科技和互联网金融 中国最先进互联网科技公司 济南和联互联网科技有限公司 深圳国际航运科技和互联网 互联网科技商业 广西互联网科技孵化中心 想开互联网科技公司怎么样 迪庆互联网科技招生 西安小鹰速贷互联网科技有限公司 济南有互联网科技公司吗 科技互联网的核心竞争力 浙南科技城互联网大厦招聘 互联网硬科技公司 张家口科技产业互联网平台 悟空问答互联网科技 互联网金融金融科技 现代科技的标志之一的互联网 互联网科技图片 金融科技 互联网金融 成都互联网科技公司 互联网科技公司介绍 互联网科技创新企业排名 常德市电业局互联网科技部 亳州好赞互联网科技有限公司 银川新华互联网科技学校联系电话 互联网科技人工智能实验室 知域互联网科技有限公司官网
0