跳轉到內容

Celestia/教程/簡單小行星

來自華夏公益教科書

本教程系列將從如何將小行星新增到 Celestia 開始。小行星是最容易新增到 Celestia 的天體之一,因為大多數小行星都可以用 SSC 程式碼模擬。

要將小行星新增到 Celestia,您需要一個 .ssc 檔案。這可以透過獲取任何純文字檔案(.txt)並將副檔名重新命名為 .ssc 來建立。此檔案可以命名為任何名稱,只要它具有 .ssc 字尾即可。然後,應將其放置到“extras”目錄(即資料夾)中,或“extras”目錄中的任何資料夾中。

現在,在開啟 .ssc 檔案後,您需要透過使用您喜歡的文字編輯器在其中編寫一些程式碼來定義小行星。大多數小行星的資訊可以在各種地方找到,例如 JPL 的小行星資料庫瀏覽器 或維基百科。基本定義如下所示

基本定義

[編輯 | 編輯原始碼]
"Name" "Sol"
{
	Class "asteroid"
	Mesh "mesh.*"
	Texture "texture.*"
	Radius <number>
	Color [ <number> <number> <number> ]
	BlendTexture true

	EllipticalOrbit
	{
	Epoch	        <number>
	Period		<number>
	SemiMajorAxis	<number>
	Eccentricity	<number>
	Inclination	<number>
	AscendingNode	<number>
	ArgOfPericenter <number>
	MeanAnomaly	<number>
	}

	Albedo <number>
	RotationPeriod <number>
}

我們將逐個介紹這些引數。為了趣味性,讓我們以小行星 24601 瓦爾讓 為例。

此外,您可以在任何時候在您的 .ssc 程式碼中添加註釋。註釋以 # 符號開頭,一直持續到下一行換行符。建議添加註釋來解釋您是否自己計算了引數,或者它們是否是估計值。

引數列表

[編輯 | 編輯原始碼]
"Name" "Sol"

這裡,"Sol" 表示將小行星放置在太陽(也稱為“Sol”)的軌道上。Name 只是小行星的名稱(或名稱)。如果小行星有多個名稱,則用冒號 (:) 將它們隔開。對於小行星,習慣上新增完整名稱,包括其編號、名稱本身以及臨時編號(看起來像年份的四位數字,後跟一些字母和數字,通常是兩個字母和幾個數字)。對於瓦爾讓,它看起來像這樣

"24601 Valjean:Valjean:1971 UW" "Sol"

其他小行星尚未命名。這些小行星往往這樣寫,其中一個版本包含小行星編號

"24601 1971 UW:1971 UW" "Sol"
	Class "asteroid"

這行程式碼只是告訴 Celestia 該天體是一顆小行星。

	Mesh "mesh.*"

這行程式碼告訴 Celestia 使用什麼模型。可以省略此行,但會導致小行星顯示為球體,而大多數小行星在現實生活中並非如此。

對於大多數小行星,它們的形狀是未知的,因為我們還沒有對其進行詳細成像。Celestia 附帶了兩個通常用於形狀未知情況的隨機模型:asteroid.cmsroughsphere.cms。對於 Celestia,請用上面提到的兩個模型之一替換 mesh.*

如果您想從形狀模型中模擬小行星的實際形狀,請參閱 高階小行星#網格.

	Texture "texture.*"

紋理本質上是包裹在模型上的地圖。同樣,大多數小行星將不會有紋理,因為我們還沒有對其進行詳細成像。在這種情況下,幾乎總是使用 asteroid.jpg

	Radius <number>

此引數只是指小行星的半徑,單位為公里。如果您幸運的話,JPL 的小行星資料庫將包含一個直徑,您可以將其除以 2 來獲得半徑。但是,許多資料庫不會包含該資訊。在這種情況下,下一個最好的選擇是使用絕對星等引數,每個小行星都應該存在已釋出的值。

絕對星等引數本質上是小行星內在亮度的值,值越低,小行星越亮。使用該值和反照率值(將在後面詳細解釋),可以估算小行星的大小。

不幸的是,許多小行星的反照率也未知。因此,通常假設岩石天體的反照率約為 0.4,冰天體的反照率約為 0.08。要計算半徑(單位為公里),請使用以下公式

其中 代表反照率, 代表絕對星等。

	Color [ <number> <number> <number> ]
	BlendTexture true

Color 引數是在天體顯示為點時,其 RGB 值。有兩種方法可以獲取此引數:使用原始碼中的 spectrum2rgb.c 工具,以及使用顏色索引。BlendTexture true 只是意味著紋理的顏色與 Color 引數的顏色相同。如果您找不到任何與顏色相關的資訊,請將其留空。

有關從科學資料中估算小行星顏色的方法,請參閱 高階小行星#顏色.

	EllipticalOrbit
	{
	Epoch	        <number>
	Period		<number>
	SemiMajorAxis	<number>
	Eccentricity	<number>
	Inclination	<number>
	AscendingNode	<number>
	ArgOfPericenter <number>
	MeanAnomaly	<number>
	}

這段程式碼定義了小行星如何繞其中心天體(在本例中為太陽)執行。可以使用其他引數,例如 PericenterDistance,但這是一種最常見的格式。

只需從資料庫(如 JPL 的小行星資料庫瀏覽器)中複製貼上值即可。請注意,週期單位為年,而不是天,曆元採用儒略日期格式。

反照率

[編輯 | 編輯原始碼]
	Albedo <number>

小行星的反照率是一個介於 0 到 1 之間的值,表示小行星反射了多少光,其中 0 表示完全黑暗的天體,1 表示反射了所有照射到它上的光。

如果您找不到已釋出的反照率值,則可能需要估計一個值。與直覺相反,岩石天體往往比冰天體具有更高的反照率(約 0.4)(約 0.08)。

自轉週期

[編輯 | 編輯原始碼]
	RotationPeriod <number>

這僅僅是指小行星繞其自轉軸旋轉一週所需的時間。單位為小時。對於瓦爾讓,有一個已釋出的值:5.89 小時。

	RotationPeriod 5.89

同樣,許多小行星的自轉週期未知,因此需要進行猜測。根據經驗,較小的行星自轉週期較短。

為了獲得更準確的包含軸傾斜等資訊的 asteroid 旋轉,請參考 高階小行星#旋轉軸。這些使用與 RotationPeriod 不同的引數。

示例程式碼

[編輯 | 編輯原始碼]

為了參考,以下是一些 .ssc 程式碼示例,用於 24601 Valjean

"24601 Valjean:Valjean:1971 UW" "Sol"
{
	Class "asteroid"
	Mesh "asteroid.cms"
	Texture "asteroid.jpg"
	Radius 1.1 # assuming albedo of 0.4

	EllipticalOrbit
	{
	Epoch	        2459000.5
	Period		3.31008102884
	SemiMajorAxis	2.22102586047
	Eccentricity	0.19003032943
	Inclination	6.40072085043
	AscendingNode	37.6267058410
	ArgOfPericenter 348.001749666
	MeanAnomaly	253.443255341
	}

	Albedo 0.4 # guess
	RotationPeriod 5.89
}
華夏公益教科書