Celestia/Celx 脚本/CELX Lua 方法/CEL 命令 seturl
seturl { url <urlstring> }
将相机移动到保存的“位置 URL”(或 Cel://URL)的位置,您之前使用 [Ctrl + C] 或 [Ctrl + Ins] 键将其捕获到剪贴板。
参数
- url <urlstring>
- 定义要使用的 celURL。无默认值。
- celURL 字符串确实具有 Celestia 可识别的特定格式
- 该字符串始终以“cel://”开头;
- 然后:“Follow”、“SyncOrbit”、“Chase”、“PhaseLock” 或“Freeflight”
- 接着是两个“/”字符之间的对象(例如,“/Sol:Earth/”);
- -- 或 -- 在“Freeflight”的情况下,只有一个“/”字符。
- 日期格式为:yyyy-mm-dd
- 年份前面可以是“ - ”字符,表示公元前年份。
- 时间以字符“T”开头,以字符“?”结束,格式为
- hh:mm:ss.sssss TDB 时间,它略微不同于 UTC 时间。
有关 TDB、UTC 以及 Celestia 中如何使用时间的更多信息,请参阅 Celestia/时间尺度。
- hh:mm:ss.sssss TDB 时间,它略微不同于 UTC 时间。
- 观察者在空间中的位置(x、y、z)在当前参考系中
- “x=” ,后跟 X 位置(例如“AKknXYYNARE”)
- “&y=” ,后跟 Y 位置(例如“ACb9ForuURI”)
- “&z=” ,后跟 Z 位置(例如“AJLCIRc5vuz//////////w”)
- 观察者的方向(ow、ox、oy、oz)
- “ow=” ,后跟旋转的 OW 分量(例如“0.429893”)
- “&ox=” ,后跟旋转的 OX 分量(例如“0.319956”)
- “&oy=” ,后跟旋转的 OY 分量(例如“-0.786188”)
- “&oz=” ,后跟旋转的 OZW 分量(例如“-0.307779”)
- 然后,其他选项可能按行排列,例如
- “&track=” 对象名
- “&select=” 对象名
- “&fov=” 视场,以度为单位
- “&ts=” 时间尺度
- “<d=” 光时延迟(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<d=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<d=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<d=0&p=0&rf=20227&lm=1243136&tsrc=0&ver=3" }}]]) wait(180.0)