Celestia/Celx 脚本/CELX Lua 方法/CEL 命令标记
外观
mark { object <objectstring> size <sizenumber> color <colorvector> symbol <symbolstring> label <labelstring> occludable <boolean_occludable> }
此命令使用指定的 <symbolstring>、<sizenumber> 和 <colorvector> 对 <objectstring> 进行标记。还可以向标记添加标签 <labelstring>,并定义标记是否会被前面的对象隐藏。
参数
- object <objectstring>
- 要标记的对象名称。无默认值。
- size <sizenumber>
- 符号的直径(以像素为单位)。默认值为 10.0。
- color <colorvector>
- 定义符号的颜色。默认值为 [1 0 0],即红色。
三个数字分别定义红色、绿色和蓝色的强度(RGB)。允许的值为 0 到 1,小数用前导 0 指定,例如 0.5。任何大于 1 的值都与指定为 1 相同。 - symbol <symbolstring>
- 定义用于标记对象的符号形状。默认值为 "diamond"。
必须是以下字符串值之一- diamond
- plus
- square
- triangle
- x
- 1.6.0 filledsquare
- 1.6.0 leftarrow
- 1.6.0 rightarrow
- 1.6.0 uparrow
- 1.6.0 downarrow
- 1.6.0 circle
- 1.6.0 disk
- 1.6.0 label <labelstring>
- 标记的文本标签。默认值为空字符串,表示没有标签。
- 1.6.0 occludable <boolean_occludable>
- 一个布尔标志(true|false),指示标记是否会被前面的对象隐藏。默认值为 true,标记会被前面的对象隐藏。
CELX 等效-1
基于 celestia:mark() 方法。
注意: 使用此方法无法定义标记的 size、color、symbol、label 和 occludability。
应改为使用 object:mark() 方法(参见 CELX 等效-2)。
- 找到名称为 <objectstring> 的要标记的对象,并存储在 "objectname" 中。
objectname = celestia:find( <objectstring> )
- 标记指定的对象。
celestia:mark( objectname )
总结
objectname = celestia:find( <objectstring> ) celestia:mark( objectname )
CELX 等效-2
基于 object:mark() 方法。
- 找到名称为 <objectstring> 的要标记的对象,并存储在 "objectname" 中。
objectname = celestia:find( <objectstring> )
- 根据指定的参数,在 "objectname" 上放置一个标记
- <colorstring>: 用于标记的颜色。默认值为 lime。
- 可以使用 HTML 风格的十六进制颜色字符串,例如 " #00ff00"(lime),
或者使用一些预定义的颜色名称,例如:"red"、"green"、"yellow"、"blue"、"white"、"black" 等。
可以在 HTML 颜色名称 页面找到支持的颜色名称列表。
- 可以使用 HTML 风格的十六进制颜色字符串,例如 " #00ff00"(lime),
- <symbolstring>: 用于标记的符号名称。默认值为 "diamond"。
可用的标记符号是- "diamond"、"triangle"、"square"、"plus"、"x"、"filledsquare",
"leftarrow"、"rightarrow"、"uparrow"、"downarrow"、"circle"、"disk"。
- "diamond"、"triangle"、"square"、"plus"、"x"、"filledsquare",
- <sizenumber>: 标记的大小(以像素为单位)。默认值为 10。
- <opacitynumber>: 一个从 0 到 1 的值,表示标记的不透明度。默认值为 1.0,完全不透明。
- <labelstring>: 可以添加到标记的文本标签。默认值为空字符串,表示没有标记标签。
- <boolean_occludable>: 一个布尔标志,指示标记是否会被前面的对象隐藏。默认值为 true !!!
注意: 在之前的 Celestia 版本(1.5.1 及更早版本)中,标记不会被前面的对象隐藏,而在 Celestia 1.6.0 及更高版本中,默认值不是这样 !!!
注意: 在 Celestia 1.5.1 及更早版本中使用 <boolean_occludable> 将导致 Celestia 错误 !!!
- <colorstring>: 用于标记的颜色。默认值为 lime。
objectname:mark( <colorstring>, <symbolstring>, <sizenumber>, <opacitynumber>, <labelstring>, <boolean_occludable> )
总结
objectname = celestia:find( <string> ) objectname:mark( <colorstring>, <symbolstring>, <sizenumber>, <opacitynumber>, <labelstring>, <boolean_occludable> )
例子
以下示例使用绿色的 "x" 标记地球,并且(1.6.0)添加一个标签 "This is our Earth",这个标签即使有对象经过也会一直显示。
CEL
# In previous Celestia releases (version 1.5.1 and older). mark { object "Sol/Earth" size 15 color [0 1 0] symbol "x" }
# In newer Celestia releases (version 1.6.0 and later).
mark { object "Sol/Earth" size 15 color [0 1 0] symbol "x" label "This is our Earth" occludable false }
CELX with the celestia:mark() method not completely compatible
-- This example will NOT meet the required size, color and symbol !!! objectname = celestia:find("Sol/Earth") celestia:mark(objectname)
CELX with the object:mark() method
-- In previous Celestia releases (version 1.4.1 and older). objectname = celestia:find("Sol/Earth") objectname:mark("green", "x", 15.0, 1)
-- In previous Celestia releases (version 1.5.0 and 1.5.1).
objectname = celestia:find("Sol/Earth")
objectname:mark("green", "x", 15.0, 1, "This is our Earth" )
-- In newer Celestia releases (version 1.6.0 and later).
objectname = celestia:find("Sol/Earth")
objectname:mark("green", "x", 15.0, 1, "This is our Earth", false)