跳转到内容

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
}
华夏公益教科书