跳转到内容

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() 方法。

注意: 使用此方法无法定义标记的 sizecolorsymbollabeloccludability
应改为使用 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 颜色名称 页面找到支持的颜色名称列表。
    • <symbolstring>: 用于标记的符号名称。默认值为 "diamond"。
      可用的标记符号是
      • "diamond"、"triangle"、"square"、"plus"、"x"、"filledsquare",
        "leftarrow"、"rightarrow"、"uparrow"、"downarrow"、"circle"、"disk"。
    • <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 错误 !!!
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)


返回 CEL 命令索引

华夏公益教科书