跳转到内容

Celestia/Celx 脚本/CELX Lua 方法/CEL 命令 follow

来自 Wikibooks,为开放世界提供开放书籍

follow { }

此命令告诉 Celestia 将坐标系设置为黄道,并跟随当前选定的物体。

此命令没有参数。


CELX 等效-1

基于 observer:setframe() 方法。

  • 找到要跟随的名称为 <string> 的目标物体,并存储在“objectname”中。
objectname = celestia:find( <string> )
  • 创建一个新的参考系,以“objectname”为参考物体,并以黄道为参考系,并将其存储在“frame”中。
frame = celestia:newframe("ecliptic", objectname)
  • 获取活动视图的观察者实例,并将参考系的坐标系设置为“frame”。
obs = celestia:getobserver()
obs:setframe(frame)

总结

objectname = celestia:find( <string> )
frame = celestia:newframe("ecliptic", objectname)
obs = celestia:getobserver()
obs:setframe(frame)


CELX 等效-2

基于 observer:follow() 方法。

  • 找到要跟随的名称为 <string> 的目标物体,并存储在“objectname”中。
objectname = celestia:find( <string> )
  • 获取活动视图的观察者实例,并在“objectname”上激活跟随模式。
    跟随模式与将参考系设置为以“objectname”为参考物体的黄道相同。
obs = celestia:getobserver()
obs:follow(objectname)

总结

objectname = celestia:find( <string> )
obs = celestia:getobserver()
obs:follow(objectname)

示例
此示例选择火星,将坐标系设置为黄道(跟随),然后飞往火星。

CEL

select { object "Sol/Mars" }
follow { }
goto   { time 2 }
wait   { duration 2 }

CELX-1 使用 observer:setframe() 方法

mars = celestia:find("Sol/Mars")
celestia:select(mars)
frame = celestia:newframe("ecliptic", mars)
obs = celestia:getobserver()
obs:setframe(frame)
obs:goto(mars, 2.0)
wait(2.0)

CELX-2 使用 observer:follow() 方法

mars = celestia:find("Sol/Mars")
celestia:select(mars)
obs = celestia:getobserver()
obs:follow(mars)
obs:goto(mars, 2.0)
wait(2.0)


返回 CEL 命令索引

华夏公益教科书