使用 AnyLogic/基於 Agent 的建模/步驟 11. 使人員接觸基於距離
外觀
步驟 11. 使人員接觸基於距離
現在,人員隨機分佈在 650x300 英里的正方形區域內。如果人員之間的距離不超過 25 英里,則讓他們進行聯絡。
- 透過雙擊專案檢視中的Person項,開啟Person類圖。
- 單擊Adopter狀態的內部轉換。
- 修改轉換的操作。用以下內容替換現有字串
send (“Buy!”, RANDOM_CONNECTED);
人員現在只會與他們的鄰居進行聯絡。
現在,我們將稍微修改一下我們的動畫,以視覺化聯絡網路。
- 開啟Person類圖。
- 畫一條線,如圖所示。

從調色盤檢視的演示頁面中選擇線
元素。然後單擊圖形編輯器中的點 (0,0) 來放置線的起點,最後單擊想要繪製終點的位置。 - 開啟線的屬性檢視中的動態選項卡,並修改線的一些動態屬性。
- 在複製欄位中,鍵入
getConnectionsNumber(),
(在鍵入時可以使用程式碼補全輔助。)
在這裡,我們指定了代理的接觸線數量。我們需要為該代理的每個連線畫一條線。為此,我們呼叫getConnectionsNumber()函式,返回當前在我們網路中連線到此代理的代理數量。 - 定義動畫中的線的位置
在dX欄位中,鍵入getConnectedAgent(index).getX() - getX()
在dY欄位中,鍵入getConnectedAgent(index).getY() - getY()
在這裡,我們將每條線的終點放置到具有對應連線代理的座標的點上。連線代理使用getConnectedAgent(index)函式交替訪問。
現在,那些相互聯絡的人員將在我們的演示中用線連線起來。
我們已完成建立動畫。執行模型並觀察網路中的動態。




