2019-09-18-Stellarium脚本API学习

先把0.8更新到0.9,否则mark类不能用

我写的两个脚本:

https://git.io/JeOKV

https://git.io/JeOKL

一、脚本基本语法

Stellarium的脚本基于ECMAScript,与JavaScript非常相似。您需要的是ECMAScript文档。

基于ECMAScript

请先阅读 ECMAScript 6 简明教程

var、 let、const 和 block

列表[],push添加

function Person(make, model, value)

然后 函数

The Global Object (1)全局对象

Value Properties

  • NaN
  • Infinity
  • undefined

Function Properties

  • eval(x)
  • parseInt(string, radix)
  • parseFloat(string)
  • isNaN(number)
  • isFinite(number)
  • decodeURI(encodedURI)
  • decodeURIComponent(encodedURIComponent)
  • encodeURI(uri)
  • encodeURIComponent(uriComponent)

Constructor Properties 构造类型

  • Object
  • Function
  • Array
  • String
  • Boolean
  • Number
  • Date
  • RegExp
  • Error
  • EvalError
  • RangeError
  • ReferenceError
  • SyntaxError
  • TypeError
  • URIError

Other Properties

  • Math
  • JSON

Object Objects (2)对象的方法

Object Constructor

Function Properties

  • getPrototypeOf(O)
  • getOwnPropertyDescriptor(O, P)
  • getOwnPropertyNames(O)
  • create(O [, Properties])
  • defineProperty(O, P, Attributes)
  • defineProperties(O, Properties)
  • keys(O)

Object Prototype Object

Function Properties

  • toString()
  • toLocaleString()
  • valueOf()
  • hasOwnProperty(V)
  • isPrototypeOf(V)
  • propertyIsEnumerable(V)

Function Objects (3)函数的方法

Function Prototype Object

Function Properties

  • toString()
  • apply(thisArg, argArray)
  • call(thisArg [, arg1 [, arg2, …]])

Array Objects (4)数组的方法

Array Prototype Object

Function Properties

  • toString()
  • toLocaleString()
  • concat([item1 [, item2 [, …]]])
  • join(separator)
  • pop()
  • push([item1 [, item2 [, …]]])
  • reverse()
  • shift()
  • slice(start, end)
  • sort(comparefn)
  • splice(start, deleteCount[, item1 [, item2 [, …]]])
  • unshift([item1 [, item2 [, …]]])
  • indexOf(searchElement [, fromIndex])
  • lastIndexOf(searchElement [, fromIndex])
  • every(callbackfn [, thisArg])
  • some(callbackfn [, thisArg])
  • forEach(callbackfn [, thisArg])
  • map(callbackfn [, thisArg])
  • filter(callbackfn [, thisArg])
  • reduce(callbackfn [, initialValue])
  • reduceRight(callbackfn [, initialValue])

String Objects (5)重要!字符串的方法

String Prototype Object

Function Properties

  • toString()
  • valueOf()
  • charAt(pos)
  • charCodeAt(pos)
  • concat([string1 [, string2 [, …]]])
  • indexOf(searchString ,position)
  • lastIndexOf(searchString, position)
  • localeCompare(that)
  • match(regexp)
  • replace(searchValue, replaceValue)
  • search(regexp)
  • slice(start, end)
  • split(separator, limit)
  • substring(start, end)
  • toLowerCase()
  • toLocaleLowerCase()
  • toUpperCase()
  • toLocaleUpperCase()
  • trim()

Boolean Objects(6)真值的方法

Boolean Prototype Object

Function Properties

  • toString()
  • valueOf()

Number Objects(7)数字的方法

Number Prototype Object

Function Properties

  • toString(radix)
  • toLocaleString()
  • toFixed(fractionDigits)
  • toExponential(fractionDigits)
  • toPrecision(precision)

The Math Object(8)数学参数的方法

Value Properties

  • E
  • LN10
  • LN2
  • LOG2E
  • LOG10E
  • PI
  • SQRT1_2
  • SQRT2

Function Properties

  • abs(x)
  • acos(x)
  • asin(x)
  • atan(x)
  • atan2(y, x)
  • ceil(x)
  • cos(x)
  • exp(x)
  • floor(x)
  • log(x)
  • max([value1 [, value2 [, …]]])
  • min([value1 [, value2 [, …]]])
  • pow(x, y)
  • random()
  • round(x)
  • sin(x)
  • sqrt(x)
  • tan(x)

Date Objects(9)日期的方法

Date Prototype Object

Function Properties

  • toString()
  • toDateString()
  • toTimeString()
  • toLocaleString()
  • toLocaleDateString()
  • toLocaleTimeString()
  • valueOf()
  • getTime()
  • getFullYear()
  • getUTCFullYear()
  • getMonth()
  • getUTCMonth()
  • getDate()
  • getUTCDate()
  • getDay()
  • getUTCDay()
  • getHours()
  • getUTCHours()
  • getMinutes()
  • getUTCMinutes()
  • getSeconds()
  • getUTCSeconds()
  • getMilliseconds()
  • getUTCMilliseconds()
  • getTimeZoneOffset()
  • setTime(time)
  • setMilliseconds(ms)
  • setUTCMilliseconds(ms)
  • setSeconds(sec [, ms])
  • setUTCSeconds(sec [, ms])
  • setMinutes(min [, sec [, ms]])
  • setUTCMinutes(min [, sec [, ms]])
  • setHours(hour [, min [, sec [, ms]]])
  • setUTCHours(hour [, min [, sec [, ms]]])
  • setDate(date)
  • setUTCDate(date)
  • setMonth(month [, date])
  • setUTCMonth(month [, date])
  • setFullYear(year [, month [, date]])
  • setUTCFullYear(year [, month [, date]])
  • toUTCString()
  • toISOString()
  • toJSON()

RegExp Objects(10)正则的方法

RegExp Prototype Object

Function Properties

  • exec(string)
  • test(string)
  • toString()

Error Objects(11)错误处理的方法

Error Prototype Object

Value Properties

  • name
  • message

Function Properties

  • toString()

The JSON Object

Function Properties

  • parse(text [, reviver])
  • stringify(value [, replacer [, space]])

二、具体方法

然后参考下面两个进行学习:

ConstellationMgr、StelMovementMgr各种派生类的方法介绍,然而脚本只需要直接调用即可

https://stellarium.org/doc/0.19/scripting.html

下面是core的各种方法

https://stellarium.org/doc/0.19/classStelMainScriptAPI.html

ConstellationMgr 星座艺术 边界 星座线 标签
CustomObjectMgr 自定义对象
HighlightMgr 高亮标记
GridLinesMgr 控制方位,赤道,黄道和银河系网格的绘制,以及大圆
LabelMgr 允许在对象或坐标上创建自定义标签
MarkerMgr 允许在对象或坐标上创建自定义标记
LandscapeMgr 管理观察者周围环境中的所有渲染 大地大气光污染 观察者位置 亮度
SporadicMeteorMgr 模拟零星流星雨,随机颜色和随机辐射。
NebulaMgr 星系符号 名称 大小限制 星云渲染 大小限制
ScreenImageMgr 管理脚本的图像
太阳系 行星 各种
StarMgr 设置星星的显示
StelActionMgr
StelAudioMgr 音频
StelVideoMgr 视频
StelMovementMgr 管理头部动作和变焦操作 setEquatorialMount 转到所选对象
StelSkyCultureMgr
StelSkyDrawer
StelSkyLayerMgr
银河
ZodiacalLight

不懂再参照别人的脚本学习就行,比如setDiskViewport方法。