無(wú)線信號(hào)被建筑物遮擋后,信號(hào)會(huì)減弱,那么在三維場(chǎng)景中,如何模擬了?為了簡(jiǎn)單起見,我們先做如下假設(shè):
- 無(wú)線信號(hào)是靠近地面的半球體
- 建筑物是標(biāo)準(zhǔn)的立方體
- 信號(hào)被遮擋后直接消失
雖然CSG為我們提供了三維模型相加、相減或者相交的功能,但也不能解決遮擋的問(wèn)題。不過(guò)我們可以將立方體相對(duì)于信號(hào)中心放大,然后再去和信號(hào)球體相減,就是我們想要的遮擋效果了。如果只考慮水平面,這個(gè)三位空間的問(wèn)題,就變成了2D問(wèn)題,類似下圖,代碼見GitHub:

signal_block.png
雖然可以很簡(jiǎn)單的寫個(gè)小例子驗(yàn)證思路,不過(guò)還是稍微啰嗦了一把,封裝了幾個(gè)類,里面有不少Canvas的API的使用,以后有空再詳細(xì)介紹。代碼就不詳細(xì)貼了,自己看:
稍微發(fā)散一下,這個(gè)功能還可以用于模擬攝像頭監(jiān)控范圍等領(lǐng)域。