Celestia/Celx 脚本/CELX Lua 方法/CEL 命令 track
外观
track { }
追踪当前选定的对象,使其保持在显示的中心。 必须先使用select命令,选择一个要追踪的对象。
该命令没有参数。
注意:如果要使相机保持与对象的固定距离,请在track命令后添加follow命令。
注意:如果当前选定的对象启用了track,从 Celestia 1.3.1 版本开始,您可以选择一个空对象“”,然后使用track命令取消对当前选定对象的追踪。
CELX 等效 start 追踪
开始追踪对象,基于 observer:track() 方法。
- 找到要追踪的名称为 <string> 的目标对象,并存储在“objectname”中。
objectname = celestia:find( <string> )
- 获取活动视图的观察者实例,并将追踪设置在“objectname”上(即始终保持“objectname”居中)。
obs = celestia:getobserver() obs:track(objectname)
总结
objectname = celestia:find( <string> ) obs = celestia:getobserver() obs:track(objectname)
CELX 等效 stop 追踪
停止追踪对象,基于 observer:track() 方法。
- 获取活动视图的观察者实例,并将追踪设置为一个空对象。
obs = celestia:getobserver() obs:track(nil)
示例
释放对任何当前选定对象的控制(cancel),选择地球(select),goto 地球,然后track。 地球将开始以它在太空中实际运行的速度远离你,但 Celestia 会track地球,使其保持在显示的中心。 以下代码示例展示了这一点,时间加快了 1000 倍。
CEL
cancel { }
select { object "Sol/Earth" }
goto { time 3 distance 7 upframe "universal" }
wait { duration 5 }
track { }
timerate { rate 1000 }
CELX 使用 observer:track() 方法
obs = celestia:getobserver()
obs:cancelgoto()
obs:track(nil)
obs:setframe(celestia:newframe("universal"))
earth = celestia:find("Sol/Earth")
celestia:select(earth)
-- The following 2 methods are obsolete, because of methods above
-- frame = celestia:newframe("universal", earth)
-- obs:setframe(frame)
radius = earth:radius()
distance = 7 * radius
obs:gotodistance(earth, distance, 3 )
wait (5)
obs:track(earth)
celestia:settimescale(1000)