threejs室内导航之自动寻路 - 障碍物标注

threejs加载楼层的3ds文件后,需要解决自动寻路的网格中障碍物标记问题,因为所画网格和加载的3ds模型文件没有关联关系,要标记有障碍物的网格必须将两者关联。

        我们以同一坐标原点作为参考点,拿出模型中各物体方块的四个顶点的 (x,y) 坐标,然后计算每个网格点是否与物体相交,相交则有障碍物。画图可以更好地说明,但只为自己记录,有时间再补充,直接上代码。

var gridWidth = 40; //导航格宽度

//3D障碍物方块
var objs = [
    [{x:110,y:130},{x:110,y:150},{x:160,y:150},{x:160,y:130}],
    [{x:85,y:20},{x:85,y:70},{x:110,y:20},{x:110,y:70}]
];

//生成数字全部一样的矩阵,比如说0或者1
//row:行,col:列
function produceSameNumber(row, col, number) {
    var result = [];
    var arr;
    for ( var i = 0; i < row; i++ ) {
        arr = (new Array(col)).join(',').split(',').map( function(){
            return number;
        });
        result.push(arr);
    }
    return result;
}
//生成全0的矩阵,row:行,col:列
function zeros(row, col) {
    return produceSameNumber(row, col, 0);
}

//获取物体边界值
function getBoundary(singleObj
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值