跳转到内容

Celestia/Celx 脚本/CELX Lua 方法/CEL 命令 seturl

来自维基教科书,开放的书籍,为开放的世界

seturl { url <urlstring> }

将相机移动到保存的“位置 URL”(或 Cel://URL)的位置,您之前使用 [Ctrl + C] 或 [Ctrl + Ins] 键将其捕获到剪贴板。

参数

url <urlstring>
定义要使用的 celURL。无默认值。
celURL 字符串确实具有 Celestia 可识别的特定格式
  1. 该字符串始终以“cel://”开头;
  2. 然后:“Follow”、“SyncOrbit”、“Chase”、“PhaseLock” 或“Freeflight”
    • 接着是两个“/”字符之间的对象(例如,“/Sol:Earth/”);
    • -- 或 -- 在“Freeflight”的情况下,只有一个“/”字符。
  3. 日期格式为:yyyy-mm-dd
    • 年份前面可以是“ - ”字符,表示公元前年份。
  4. 时间以字符“T”开头,以字符“?”结束,格式为
    • hh:mm:ss.sssss TDB 时间,它略微不同于 UTC 时间。
      有关 TDB、UTC 以及 Celestia 中如何使用时间的更多信息,请参阅 Celestia/时间尺度
  5. 观察者在空间中的位置(x、y、z)在当前参考系中
    • “x=” ,后跟 X 位置(例如“AKknXYYNARE”)
    • “&y=” ,后跟 Y 位置(例如“ACb9ForuURI”)
    • “&z=” ,后跟 Z 位置(例如“AJLCIRc5vuz//////////w”)
  6. 观察者的方向(ow、ox、oy、oz)
    • “ow=” ,后跟旋转的 OW 分量(例如“0.429893”)
    • “&ox=” ,后跟旋转的 OX 分量(例如“0.319956”)
    • “&oy=” ,后跟旋转的 OY 分量(例如“-0.786188”)
    • “&oz=” ,后跟旋转的 OZW 分量(例如“-0.307779”)
  7. 然后,其他选项可能按行排列,例如
    • “&track=” 对象名
    • “&select=” 对象名
    • “&fov=” 视场,以度为单位
    • “&ts=” 时间尺度
    • “&ltd=” 光时延迟(0 = 关闭,1 = 开启)
    • “&p=” 暂停(0 = 关闭,1 = 开启)
    • “&rf=” 渲染标志。rf 数字由以下各个标志的总和组成
      1 = 星星
      2 = 行星
      4 = 星系
      8 = 星座线
      16 = 云彩
      32 = 轨道
      64 = 天球网格
      128 = 夜间灯光
      256 = 大气
      512 = 轨道的光滑线条
      1024 = 日食阴影
      2048 = 光线传播 ???
      4096 = 环形阴影
      8192 = 星座边界
      16384 = 自动星等
      32768 = 彗星尾
      65536 = 标记
      131072 = 部分轨迹(尚未实现)
      262144 = 星云
      524288 = 开放星团
      1048576 = 球状星团
      2097152 = 云影
      4194304 = 银河网格
      8388608 = 黄道网格
      16777216 = 水平网格
      33554432 = 黄道
    • “&lm=” 标签标志。lm 数字由以下各个标志的总和组成,这些标志指示显示的标签
      1 = 星星
      2 = 行星
      4 = 月亮
      8 = 星座
      16 = 星系
      32 = 小行星
      64 = 飞船
      128 = 位置
      256 = 彗星
      512 = 星云
      1024 = 开放星团
      2048 = 星座的本地名称
      4096 = 矮行星
      8192 = 小型卫星
      16384 = 球状星团
    • “&tsrc=” ???
    • “&ver=3” 用于 celestia 1.6 及更高版本(目前)

注意: Celestia 版本 1.6.0 和版本 1.6.1 的 celURL 为“ver=3”类型(<urlstring> 中的最后一个参数),与早期版本类型的 urlstring 不完全兼容。因此,当在 Celestia 版本 1.6.1 和版本 1.6.0 中使用“ver=2” urlstring 类型时,CEL: seturl 命令和 CELX 等效项的结果可能会有所不同,与早期版本的 Celestia 相比。


Celestia 版本 1.6.1 及更高版本 的 CELX 等效项

基于 1.6.1 celestia:seturl() 方法。

  • 获取观察者实例并使观察者转到指定的 celURL。
    如果未指定观察者,则命令适用于当前活动观察者。
obs=celestia:getobserver()
celestia:seturl( <urlstring>, obs)


Celestia 版本 1.6.0 及更早版本 的 CELX 等效项

对于 Celestia 版本 1.6.0 及更早版本,此 CEL 命令没有可用的 CELX 等效项。以下 CELX 代码可用于将 CEL: seturl 命令集成到这些 Celestia 版本的 CELX 脚本中。

基于 celestia:createcelscript()celscript:tick() 方法。

  • 在 CELX 脚本开头定义以下函数
function CEL(source) 
   local script = celestia:createcelscript(source) 
   while script:tick() do 
      wait(0) 
   end 
end
  • 在 CELX 脚本中,您现在可以像这样调用 CEL: seturl 命令
CEL([[{seturl {url <urlstring> }}]])

示例
将自己定位在珠穆朗玛峰顶,观看一场非常特殊的日出。

CEL

seturl {url "cel://SyncOrbit/Sol:Earth/2009-07-21T22:47:04.72721?
x=N1WRszkGAg&y=R5015O+GFA&z=h+mfTNDb2P///////////w&ow=0.551145&ox=0.273737&oy=-
0.643962&oz=0.454554&select=Sol&fov=29.1666&ts=50.0&ltd=0&p=0&rf=20227&lm=1243136&tsrc=0&ver=3" } wait { duration 180 }

使用 celestia:seturl() 方法的 Celestia 版本 1.6.1 及更高版本CELX 等效项

obs=celestia:getobserver()
celestia:seturl("cel://SyncOrbit/Sol:Earth/2009-07-21T22:47:04.72721?
x=N1WRszkGAg&y=R5015O+GFA&z=h+mfTNDb2P///////////w&ow=0.551145&ox=0.273737&oy=-
0.643962&oz=0.454554&select=Sol&fov=29.1666&ts=50.0&ltd=0&p=0&rf=20227&lm=1243136&tsrc=0&ver=3", obs) wait(180.0)

使用 celestia:createcelscript()celscript:tick() 方法的 Celestia 版本 1.6.0 及更早版本CELX 等效项

function CEL(source) 
   local script = celestia:createcelscript(source) 
   while script:tick() do 
      wait(0) 
   end 
end

CEL([[{seturl {url "cel://SyncOrbit/Sol:Earth/2009-07-21T22:47:04.72721?
x=N1WRszkGAg&y=R5015O+GFA&z=h+mfTNDb2P///////////w&ow=0.551145&ox=0.273737&oy=-
0.643962&oz=0.454554&select=Sol&fov=29.1666&ts=50.0&ltd=0&p=0&rf=20227&lm=1243136&tsrc=0&ver=3" }}]]) wait(180.0)


返回 CEL 命令索引

华夏公益教科书