一种天球映射方法及装置的制造方法_2

文档序号:9433957阅读:来源:国知局
在动态天球上的映射距离确定天体在动态天球上的映射坐标;
[0056]步骤104:根据天体在动态天球上的映射坐标,在所述动态天球上显示所述天体
[0057]本发明方法主要是在天体和观察者之间的位置发生变化时,如何将天体定位到三维空间中。现有的一种直接定位的方法,涉及的也是星际飞行问题,该方法是直接计算天体的实际坐标,将天体定位到三维空间中。但是该方法仅能在相差不大的天文尺度下进行模拟。例如恒星际空间采用光年(LightYear),行星际空间采用天文单位(AU),卫星则采用公里(KM),这三种天体尺度差别过大,难以兼容于同一个坐标系。此时,远距离天体在摄像机观察范围之外,近处天体则密集重叠于坐标原点附近,三维软件无法模拟如此尺度的三维场景。
[0058]另外,即便采用同一尺度,当天体之间距离过远时可能会超出整型数的最大值(例如大于65536光年),或个别天体距离过近时精度小于浮点数的最小值(例如小于0.00000001光年),造成软件数值表达的困难。
[0059]因此,针对直接定位的方法中存在的问题,本发明方法中将天体(主要是超远距离天体)与观察者的距离(因为天体和观察者的位置时不断变化的,指的是相对距离)以指数形式表达。例如10000光年可转换为e~9.21034037光年。对于人类已观测到的宇宙来说,最远能达到数百亿光年,转换为指数形式约为e~24。若以公里作为计量单位,约为e'54o因此可以用有限的数值范围表达当前宇宙尺度范围内任意数量级的计量单位。
[0060]另外,当用单精度浮点值作为指数,其精度是有限的,比如数亿光年外天体的指数精度可能达到数百光年的误差,但映射到天球上时,相对观察者视域的误差远小于一个像素,小于一个像素的误差对于可视化过程是可以忽略的。如需提高精度,还可以采用双精度浮点数作为指数。因此指数表达形式不仅能够满足有限数值范围的要求,也能够满足超远距离天体的精度要求。
[0061]具体实施时,在计算出天体与观察者的距离之后,就可以根据天体与观察者的距离确定天体在动态天球上的映射距离,即将天体与观察者的距离映射到动态天球上,获得天体的映射距离。所说的动态天球为一个虚拟的天球,该天球以观察者为球心,以指定的最远距离为天球的外径,以指定的最近距离映射为天球的内径。当天体与观察者的距离超过最远距离时,天体在动态天球上的映射距离为最远距离,即直接将天体定位到天球的外表面上;当天体与观察者的距离小于最近距离时,天体在动态天球上的映射距离为实际距离,即以实际坐标在动态天球内放置天体;当天体与观察者的距离介于两个距离之间时,根据插值算法计算所述天体在动态天球上的映射距离,即以插值算法将其定位到内径与外径之间的相应半径处。
[0062]具体的,内外径的数值可以根据场景的需求指定,例如在以AU (AstronomicalUnit,天文单位)为主要计量单位的太阳系内,以一艘飞船为观察者,根据每个天体与观察者的距离,分布在天球的三个区域:
[0063]内层:内径可设置为1000(三维软件中的距离单位),映射为IAU的最近距离。IAU之外的天体都可视为超远距离天体,需要进行天球坐标映射。IAU之内的每个天体都采用实际坐标,距离单位对应的实际长度为1AU/1000 = 0.001AU,作为此空间范围内天体的坐标尺度;
[0064]外层:绝大部分太阳系天体都在100AU之内,再远处的恒星系统可视为无穷远处。可将外径设置为1200,映射为100AU的最远距离,超出此距离的全都映射在1200半径处;
[0065]中间层:介于1AU和100AU之间的天体则通过线性插值(或根据场景需求选择更复杂的非线性插值算法)获得其映射的距离。
[0066]具体实施时,在获得天体在动态天球上的映射距离之后,还需要确定天球映射坐标,即天体在动态天球上的映射坐标。天体在动态天球上的映射坐标确定方法可以有好多种,具体的可以采用如下方法确定:
[0067]根据球面坐标系的算法,由天体的实际三维坐标,计算天体相对于观察者的方位角和高度角;
[0068]根据天体在动态天球上的映射距离(即该天体的天球半径),和计算得到的天体相对于观察者的方位角和高度角,确定天体在动态天球上的映射坐标。
[0069]具体实施时,在确定了天体在动态天球上的映射坐标之后,就可以根据天体在动态天球上的映射坐标,在动态天球上显示该天体。此时只是单纯的在动态天球的具体的某个三维坐标上显示出有这样一个天体,但却没有显示该天体的尺寸和亮度。
[0070]具体实施时,还可以在动态天球上显示该天体的尺寸和亮度。下面可以按照如下方法来确定天体的亮度和尺寸:首先根据天体的绝对星等,计算该天体相对观察者当前位置的视星等,然后根据计算出的视星等人为设定天体的亮度和尺寸。当确定了天体的亮度和尺寸就可以在动态天球上显示出来。
[0071]具体的,根据天体的绝对星等,计算该天体相对观察者当前位置的视星等的计算公式为:m = M-5.0*logl0 (32.616/D),其中,m为视星等,M为绝对星等(已知值),D为天体与观察者的距离(单位为光年)。
[0072]当观察者或天体发生运动时,通过上述发明方法来每帧实时更新天体的天球映射坐标、亮度和尺寸。
[0073]本发明采用动态天球映射算法,能够将多种计量尺度的天体映射到一个实时变化的天球上,当观察者移动时,每个天体均能根据其与观察者的实际距离在天球上进行相应的位移,并实时更新其尺寸和亮度,从而能够在同一个坐标系下精确模拟任意距离的天体,而且不会超越三维软件的尺度极限。
[0074]基于同一发明构思,本发明实施例中还提供了一种动态天球映射装置,如下面的实施例所述。由于动态天球映射装置解决问题的原理与动态天球映射方法相似,因此动态天球映射装置的实施可以参见动态天球映射方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
[0075]图2是本发明实施例的动态天球映射装置结构示意图,如图2所示,该装置包括:
[0076]天体距离确定模块201,用于实时计算天体与观察者的距离;
[0077]映射距离确定模块202,用于根据天体与观察者的距离确定天体在动态天球上的映射距离;所述动态天球的球心为观察者,所述动态天球的外径为指定的最远距离,所述动态天球的内径为指定的最近距离;
[0078]映射坐标确定模块203,用于根据所述天体在动态天球上的映射距离确定天体在动态天球上的映射坐标;
[0079]天体显示模块204,用于根据天体在动态天球上的映射坐标,在所述动态天球上显示所述天体。
[0080]具体实施时,本发明装置还可以包括:
[0081]视星等确定模块,用于根据天体的绝对星等,计算所述天体相对观察者当前位置的视星等;
[0082]亮度和尺寸确定模块,用于根据视星等确定所述天体的亮度和尺寸;
[0083]亮度和尺寸显示模块,用于在所述动态天球上显示所述天体的亮度和尺寸。
[0084]下面对所有结构进行详细说明。
[0085]具体实施时,由天体距离确定模块201确定的天体与观察者的距离以指数表达形式,使得可以用有限的数值范围表达当前宇宙尺度范围内任意数量级的计量单位。
[0086]具体实施时,映射距离确定模块202具体可以按照如下方式根据天体与观察者的距离确定天体在动态天球上的映射距离:
[0087]当天体与观察者的距离超过最远距离时,天体在动态天球上的映射距离为最远距离,即直接将天体定位到天球的外表面上;当天体与观察者的距离小于最近距离时,天体在动态天球上的映射距离为实际距离,即以实际坐标在动态天球内放置天体;当天体与观察者的距离介于两个距离之间时,根据插值算法计算所述天体在动态天球上的映射距离,即以插值算法将其定位到内径与外径之间的相应半径处。
[0088]具体实施时,映射坐标确定模块203具体可以按照如下方式根据所述天体在动态天球上的映射距离确定天体在动态天球上的映射坐标:
[0089]根据球面坐标系的算法,由天体的实际三维坐标,计算所述天体相对于观察者的方位角和高度角;
[0090]根据所述天体在动态天球上的映射距离,和计算得到的所述方位角和高度角,确定所述天体在动态天球上的映射坐标。
[0091]具体实施时,视星等确定模块具体可以按照如下公式计算天体相对观察者当前位
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1