编辑: 645135144 | 2018-02-20 |
5 分别为 一楼和四楼楼层结构图, 图中 S
1、 S
2、 S
3、 S4 分别为四 个楼梯口位置, Z
1、 Z
2、 Z3 为中庭走廊通道口位置点, E1 为电梯口位置.Ps 指读者当前所在位置, Pe 为目 标书架所在位置.为区分位于不同楼层的电梯口等位 置, 以E11 表示一楼电梯口, E14 表示四楼电梯口, 其他 楼梯口、 通道口同理. ( 1) 上下楼路径算法 首先需要确定是通过电梯还是某楼梯上楼.为此 遍历 S1 至S4 楼梯口, 取得与 Ps、 Pe1 ( Pe 在一楼的水 平投影间点) 距离之和最小的楼梯口为候选路径点 Sr, 如果通过该点的行进路径长度小于通过电梯路径, 那 么确定路径为 <
Ps, Sr1 , Sr4 , Pe >
, 否则路径为 <
Ps, E11 , E14 , Pe >
.实际计算时, 为绕开障碍区域, 例如图
4 中的 流通台 部分, 可能需要对各点间路线距离进 行修正.算法伪代码如下: / /将S1 作为候选通道点, 并求得其与 Ps、 Pe1 间距离 dis Sr = S1;
dis = d( Ps, S1) + d( S1,Pe1 ) ;
/ /遍历余下
3 个候选点 foreach St in <
S2, S3, S4 >
{ / /如果某点与 Ps 间距离小于 dis, 则将其作为候选点 Sr, 同时设 置dis 为该距离值 If( d( Ps, St) + d( St, Pe1 ) <
dis) { Sr = St;
dis = d( Ps, St) + d( St, Pe1 ) ;
} } / /如果楼梯 Sr 路径距离小于电梯路径, 则其为最优路径, 否则 乘坐电梯最优 if( d( Ps, Sr1 ) + d( Sr1 , Sr4 ) + d( Sr4 ........