上一篇帖子记录的内容下面用算法实现(AS2.0)
function 计算可视半径(指定俯仰角:Number,指定塔高:Number)
{if(指定塔高<=0) return 10; //在森林中塔高0米,可视认为规定为10米
//塔高H,地球半径R,地名弧长=根号下2RH
//地球平均半径R=6371004; //米
可视米距离=Math.sqrt(2*6371004*指定塔高);
//规定按直角坐标系角度来记录云台俯仰角。初始化为向正x轴向(即0度),向下俯视为负角度,向上仰视为正角度
指定俯仰角%=360; //令其值必定在一个圆周范围内
if(指定俯仰角>=0||指定俯仰角<=-180)
{
//摄像头对天
return 可视米距离;
}
//按规定(结合实际),俯仰角一般取负值,zwj
三角函数米距离=Math.tan(Math.PI*(90+指定俯仰角)/180)*指定塔高;//角度转换为弧度
//返回较小的
if(三角函数米距离<可视米距离)
{
return 三角函数米距离;
}
else
{
return 可视米距离;
}
}
其中用三角函数计算摄像头覆盖半径r的示意图如下,h为摄像头安装高度,