跳转到内容

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)


返回 CEL 命令索引

华夏公益教科书