模拟信号遮挡

无线信号被建筑物遮挡后,信号会减弱,那么在三维场景中,如何模拟了?为了简单起见,我们先做如下假设:

  • 无线信号是靠近地面的半球体
  • 建筑物是标准的立方体
  • 信号被遮挡后直接消失

虽然CSG为我们提供了三维模型相加、相减或者相交的功能,但也不能解决遮挡的问题。不过我们可以将立方体相对于信号中心放大,然后再去和信号球体相减,就是我们想要的遮挡效果了。如果只考虑水平面,这个三位空间的问题,就变成了2D问题,类似下图,代码见GitHub:

模拟信号遮挡_第1张图片
signal_block.png

虽然可以很简单的写个小例子验证思路,不过还是稍微啰嗦了一把,封装了几个类,里面有不少Canvas的API的使用,以后有空再详细介绍。代码就不详细贴了,自己看:

  • Rect 建筑物
  • Circle 信号
  • Block 场景

稍微发散一下,这个功能还可以用于模拟摄像头监控范围等领域。

你可能感兴趣的:(模拟信号遮挡)