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)