跳轉到內容

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 命令索引

華夏公益教科書