最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

“冒充偉大的先知”:三體世界太陽運(yùn)行規(guī)律【萬年歷】(含行星自轉(zhuǎn)視角、飛星—太陽變

2023-07-10 16:06 作者:月環(huán)石  | 我要投稿

【原創(chuàng)】自轉(zhuǎn)行星視角的“三體世界萬年歷”MATLAB代碼編寫思路


這本質(zhì)上是一個包含四個質(zhì)點(diǎn)運(yùn)動狀態(tài)的物理模型。我寫的代碼還比較繁復(fù)雜亂,因此這里只列出關(guān)鍵思路和重點(diǎn)代碼。Bilibili月環(huán)石撰文,本篇請勿隨意轉(zhuǎn)載!

按照劉慈欣科幻小說《三體》的描述,“三體世界”目前包含3顆互相繞轉(zhuǎn)的恒星(原型為半人馬座三合星)以及1顆行星。由于行星質(zhì)量極小,因此不考慮其對恒星的影響以節(jié)省運(yùn)算。

注:以下代碼中使用的任何參數(shù)都只是某次測試中的臨時設(shè)定值,僅供參考。視頻中的參數(shù)具體是多少已經(jīng)記不清了。


  • 知識基礎(chǔ)

大約初高中的數(shù)學(xué)和物理知識點(diǎn),加上MATLAB基本操作的學(xué)習(xí)。

為了求解三維空間的恒星三體運(yùn)動,以及行星受恒星影響產(chǎn)生的運(yùn)動,需了解:牛頓力學(xué)三定律、萬有引力公式、矢量合成與分解、微分和差分思想。

為了表現(xiàn)行星自轉(zhuǎn),繪制地面觀測點(diǎn)的實(shí)時星圖,需了解:平面直角坐標(biāo)系旋轉(zhuǎn)變換、球坐標(biāo)轉(zhuǎn)換。

為了真實(shí)性,物理常量和行星恒星數(shù)據(jù)盡量接近我們的宇宙。引力常數(shù)等均使用真實(shí)值。

(某次設(shè)定,僅供參考。半徑僅用于判斷“碰撞”,其他時候星球視為質(zhì)點(diǎn))


  • 三體運(yùn)動+行星運(yùn)動的計(jì)算和呈現(xiàn)

需要設(shè)好四顆星球在三個維度初始的運(yùn)動速度和坐標(biāo)矢量(可以自己隨便試,也可以先大致計(jì)算一下,想要長期維持需要提供一定的切向速度)。這一部分在網(wǎng)上有很多代碼提供。

核心在于用萬有引力公式算作用力和加速度:

恒星和行星之間,僅單向考慮恒星對行星的作用。

然后從三個維度方向矢量分解,分別計(jì)算各方向運(yùn)動狀態(tài)。

這么個數(shù)值模擬程序做不到微分,所以就使用差分方法,把連續(xù)的曲線運(yùn)動簡化成一段段勻變速直線運(yùn)動,把不斷變化的作用力視為在小段時間內(nèi)不變。逐個描點(diǎn)作圖即得軌跡。

時間劃分越短就越精確,但也更耗時。為了保證精度的同時加快繪圖效率,設(shè)定每計(jì)算20個點(diǎn)繪制一次行星,恒星由于運(yùn)動相對更慢,繪制頻率可以更低。


  • 行星地面視角星圖

以下部分應(yīng)該是首創(chuàng)內(nèi)容。

行星自轉(zhuǎn)時恒星坐標(biāo)變換:設(shè)行星沿z軸方向自西向東恒定自轉(zhuǎn)(簡化,不考慮恒星對自轉(zhuǎn)速度的影響),相對的,也就是從地面仰視整個宇宙自東向西轉(zhuǎn)動。于是把赤道上某點(diǎn)(緯度度不為0時計(jì)算更復(fù)雜,但畫面也更有趣)地面視為原z軸新x軸組成,垂直于地面的是新y軸。按照坐標(biāo)軸的恒速旋轉(zhuǎn),只需把恒星在x、y軸方向相對坐標(biāo)映射到新軸。新y軸方向大于0的,就是地平線上可見的恒星。

上圖中已換算成球坐標(biāo),即可直接繪圖。

地面視角坐標(biāo)圖:含恒星的坐標(biāo)點(diǎn)以及運(yùn)動軌跡。

晝夜背景:根據(jù)是否有至少一個太陽出現(xiàn)在地平線以上,用RGB碼給背景上藍(lán)色(0.2,0.3,0.6)或黑色(0,0,0),飛星不算太陽。與某一太陽過近時,繪制紅色(0.8,0.3,0.3)表示烈焰危機(jī)。

飛星、太陽的大小變化:近大遠(yuǎn)小,夸張?zhí)幚?。用markersize參數(shù)改變點(diǎn)的大小,對于在地平線以上的:恒星處于“太陽”狀態(tài)的距離d_star內(nèi)時,令大小與距離服從一定函數(shù)關(guān)系;當(dāng)距離大于d_star時,突變?yōu)椤帮w星”,大小突然縮小為1。


  • 其他游戲設(shè)定

一些參數(shù):

(關(guān)于撕裂的設(shè)定似乎比較矛盾,沒用上)

文明狀態(tài)播報(bào):參考《三體》小說情節(jié),個人編寫下表進(jìn)行判定,依據(jù)離行星不同距離上存在的恒星個數(shù)劃分情況:

判斷語句的部分代碼(并不完善):

文明的毀滅(極端環(huán)境超過20個時間單位才觸發(fā)):

游戲結(jié)局判定(三體人的徹底滅亡,除非入侵地球):根據(jù)行星與三顆恒星的距離判斷游戲結(jié)束,退出循環(huán)。吞噬考慮了碰撞半徑。

結(jié)局效果如下(某次開場即滅亡)

隱藏結(jié)局(如果不是故意的,極少遇到):



“冒充偉大的先知”:三體世界太陽運(yùn)行規(guī)律【萬年歷】(含行星自轉(zhuǎn)視角、飛星—太陽變的評論 (共 條)

分享到微博請遵守國家法律
托克逊县| 安溪县| 哈尔滨市| 望城县| 阿克苏市| 靖安县| 马公市| 嵊泗县| 青田县| 漯河市| 仁化县| 云梦县| 电白县| 临武县| 辉县市| 周至县| 安图县| 伽师县| 辛集市| 鹤庆县| 富裕县| 德化县| 金阳县| 扎兰屯市| 濮阳市| 鲁甸县| 化德县| 义乌市| 怀化市| 乐都县| 桐柏县| 新巴尔虎左旗| 枞阳县| 梧州市| 原平市| 乌鲁木齐县| 通海县| 江阴市| 安乡县| 宜章县| 陆良县|