无线信号被建筑物遮挡后,信号会减弱,那么在三维场景中,如何模拟了?为了简单起见,我们先做如下假设:
- 无线信号是靠近地面的半球体
- 建筑物是标准的立方体
- 信号被遮挡后直接消失
虽然CSG为我们提供了三维模型相加、相减或者相交的功能,但也不能解决遮挡的问题。不过我们可以将立方体相对于信号中心放大,然后再去和信号球体相减,就是我们想要的遮挡效果了。如果只考虑水平面,这个三位空间的问题,就变成了2D问题,类似下图,代码见GitHub:
signal_block.png虽然可以很简单的写个小例子验证思路,不过还是稍微啰嗦了一把,封装了几个类,里面有不少Canvas的API的使用,以后有空再详细介绍。代码就不详细贴了,自己看:
稍微发散一下,这个功能还可以用于模拟摄像头监控范围等领域。
网友评论