還記得上次那個用ASCII實現光線追蹤技術的國外小哥嗎?
沒錯,他又有新動作了!
這次,他再一次使用ASCII碼模擬了碰撞的星系,同樣,全過程都是用C++實現的。
毫無疑問,這個最新的專案一經出現,就在Reddit上收攬了2。5K+熱度。
下圖就是
星球即將碰撞的一瞬間
:
此外,小哥還模仿了兩顆星球在相反方向進行旋轉的過程:
用牛頓引力定律助力星系碰撞
這些神奇的效果是怎麼實現的呢?
小哥在他的影片裡簡單介紹了一下基本的過程和原理:
首先,使用牛頓引力定律,他實現了重力的模擬。
使用這個公式,他就可以預測任何數量的物體的運動趨勢:
下圖還模擬了日地月三個星球的運動狀態:
整個實驗的程式碼地址:
github。com/DinoZ1729/Galaxy
諸多專案妙趣橫生,只有想不到沒有做不到
除此之外,小哥還放上了另外三個專案的影片連結:
一個是「在c++控制檯模擬10,000雙擺」:
影片連結:
https://www。youtube。com/watch?v=DMOK5BS6KJw
下面是一個
雙擺的運動
狀態:
下圖是兩個雙擺:
下面是10000個雙擺的運動情況:
這個專案是「Boids|模擬魚類和鳥類的運動」:
影片連結:
https://www。youtube。com/watch?v=mev2cgRN9Zo
下圖是魚群和鳥群的運動狀態:
他使用了三種簡單的規則來模擬運動狀態:
而沒有了這三種規則的限制,情況會是下圖這樣:
可以看出,在沒有規則的限制下,運動軌跡會是完全混亂的。
此外,這個小哥還在他的github和youtube頻道上持續更新最新的專案和影片,感興趣的小夥伴可以前去持續關注哦!
參考連結:
https://www。reddit。com/r/programming/comments/l3f5v4/i_created_an_ascii_simulation_of_colliding/