沙漏游戲的Matlab實現

今天在技術鄰上看到了一個有趣的帖子:http://www.yqgqt.org.cn/content/post/276715

作者是Abaqus專家 所謂何事,介紹了用Abaqus模擬中的沙漏效應。

這個和我們常說的“沙漏”還不是一回事兒。


不過我由此想到我自己以前做過的一個小的程序,一個沙漏游戲。


這個游戲中,并沒有把砂看作連續介質,無需用連續介質的方法來模擬它。把每一個像素點看作一粒砂,砂動=像素點移動。


這個游戲中,我們可以自己定義沙漏的形狀(黑色的是砂漏邊界),沙漏中有兩種顏色的砂,空白之處用白色表示。每一個計算步中,砂子一一定的概率向自己的左下、右下、下方移動,當然前提是那里是空格。


熟悉CA的朋友應該知道,這是一個簡單的CA,規則十分簡單。MATLAB代碼也很簡單,初學者都能看懂。如果有哪里寫得不好,還請大家指正。


計算步增加可以類比時間的流逝,最終砂子會慢慢落下、在底部形成堆積體,下圖是計算的中間結果。

無標題.png

細心的讀者可以發現,沙漏中砂下落時,首先下落的是中心部分的,第五張圖中用兩條黑線做了標記,黑線以外的砂在計算中一直沒有動。當然,如果計算步足夠多,它們也是會落下的。這和試驗中觀察到的現象非常一致:

QQ截圖20160624235141.jpg


由此可見,簡單地規則,可以在一定程度上反映物體的運動規律。


附件包括:

1.我寫的Matlab代碼,可以直接運行。如果讀懂了這個簡單代碼,可以自己做一些嘗試,玩一玩其他形狀的砂漏以及其他的落砂規則。

沙漏游戲的Matlab實現的圖3沙漏代碼.zip

2.幾篇相關的Paper,作為砂漏的科普文章。

沙漏游戲的Matlab實現的圖4The Hourglass.pdf

沙漏游戲的Matlab實現的圖5Mechanics of the sandglass.pdf

沙漏游戲的Matlab實現的圖6Ticking hour glasses-Exp analysis of intermittent flow.pdf



登錄后免費查看全文
立即登錄
App下載
技術鄰APP
工程師必備
  • 項目客服
  • 培訓客服
  • 平臺客服

TOP

6
21
2