Celestia/Celx 指令碼/CELX Lua 方法/CEL 命令 setframe
外觀
setframe { ref <refstring> target <tarstring> coordsys <coordstring> }
設定當前活動的座標系。
引數
- ref <refstring>
- 定義參考(第一個)物件。無預設值。
- target <tarstring>
- 是可選的,並定義目標(第二個)物件,用於雙物件座標系,例如 lock。無預設值。
- coordsys <coordstring>
- 預設值“universal”。
必須是以下值之一- 1.6.0 bodyfixed
- chase
- ecliptical
- equatorial
- geographic → (與舊指令碼相容,此處保留)
- lock
- observer
- universal
CELX 等效
基於 celestia:newframe() 和 observer:setframe() 方法。
- 查詢並選擇名稱為 <refstring> 的參考物件,並存儲在“objectname_ref”中。
對於框架型別“universal”,不需要。
objectname_ref = celestia:find( <refstring> ) celestia:select(objectname_ref)
- 查詢名稱為 <tarstring> 的目標物件,它必須與“objectname_ref”鎖定,並存儲在“objectname_tar”上。
僅對於型別為 lock 的框架需要。
objectname_tar = celestia:find( <tarstring> )
- 建立新的參考框架並存儲在“frame”中。
<coordstring> 描述框架型別,可以是以下值之一- "universal", "ecliptic", "equatorial", "planetographic", "observer", "lock", "chase", 1.6.0 "bodyfixed".
- 在 Celestia 版本 1.6.0 中,名稱“bodyfixed”將替換“planetographic”,但出於相容性考慮,名稱“planetographic”將繼續有效。
frame = celestia:newframe( <coordstring>, objectname_ref, objectname_tar)
- 獲取活動檢視的觀察者例項,並將參考框架的座標系設定為“frame”。
obs = celestia:getobserver() obs:setframe(frame)
總結
objectname_ref = celestia:find( <refstring> ) celestia:select(objectname_ref) objectname_tar = celestia:find( <tarstring> ) frame = celestia:newframe( <coordstring>, objectname_ref, objectname_tar) obs = celestia:getobserver() obs:setframe(frame)
示例
以下示例將座標系設定為 lock,這將在地球和月球在顯示器上鎖定在一起。
CEL
setframe { ref "Sol/Earth" target "Sol/Earth/Moon" coordsys "lock" }
CELX 使用 celestia:newframe() 和 observer:setframe() 方法
earth = celestia:find("Sol/Earth")
celestia:select(earth)
moon = celestia:find("Sol/Earth/Moon")
frame = celestia:newframe("lock", earth, moon)
obs = celestia:getobserver()
obs:setframe(frame)