基于VRML的虚拟太阳系的设计与实现.pdfVIP

  • 23
  • 0
  • 约5.95千字
  • 约 5页
  • 2017-08-31 发布于天津
  • 举报
基于VRML的虚拟太阳系的设计与实现.pdf

基于VRML 的虚拟太阳系的设计与实现 谢方立 摘 要:VRML 是一种建模语言,用来在 Web 环境中描述三维物体及其行为,从而在网络环 境中构建虚拟场景(Virtual World)。VRML 的基本目标是建立因特网上的交互式三维多媒 体环境。本文基于VRML 进行虚拟静态太阳系的设计,由于时间限制,文中把八大行星的运 行轨迹统一作圆形轨迹处理。 一、太阳系简介[1] 太阳系是以太阳为中心,和所有受到太阳的重力约束天体的集合体:8 颗行星(2006 年 冥王星被去掉,因为其运动轨迹与其它八大行星不同,所以只剩下金星、水星、地球、火星、 土星、木星、天王星、海王星)、至少 165 颗已知的卫星、5 颗已经辨认出来的矮行星和数 以亿计的太阳系小天体。 也就是说,轨道环绕太阳的天体有三类:行星、矮行星及太阳系小天体。由于行星相比 较于矮行星、太阳系小天体而言,它们拥有足够的质量使本身的形状成为球体,并且有能力 清空邻近轨道的小天体。因此本文主要针对八大行星及太阳进行虚拟。另外,行星的运行轨 道复杂多变,文中统一作简化处理,将行星椭圆形的运行轨道看作是圆形,并且忽略轨道间 的距离差异。 二、虚拟太阳系的设计 对太阳系进行虚拟要解决的问题主要有两点:用球体来表示太阳和行星、用圆形表示天 体的运行轨道。 球体可以用geometry Sphere 语句直接实现,共需设计9 个球体。考虑到默认的球心位 置是坐标系原点,因此除了太阳之外,需要用Transform 语句来改变他八个行星的球心位置。 由于VRML 中没有现成圆形节点,因此圆形的实现需要借助点集合节点PointSet 。本文 选取72 个点的连线来表示一个“圆形”,每个点(a,b )由以下公式得出: a=r*sin(5º*n),b=r*cos(5º*n), 其中n=1,2,…,72.本文忽略行星轨道间距的差异,取r=0.5,1.0,1.5,2.0,2.5,3.0,3.5,4.0. 为了让虚拟的太阳系更具观赏性,对球体使用相应天体的静态图片作造型纹理,并利 用点集合节点设计若干个离散的点,用于代表太阳系中不计其数的“小星星”,增强虚拟效 果。 三、虚拟太阳系的实现 3.1 圆形轨道的实现 借助Excel 来获得所需要的72*8 个点. 由于在XOY 坐标平面上画圆,因此所有的点的 Z 轴坐标都为0. 以r=2.0 为例,在VrmlPad 中输入如下代码: Shape { 1.99 0.17 0, appearance Appearance {} 1.97 0.35 0, geometry IndexedLineSet { 1.93 0.52 0, coord Coordinate { 1.88 0.68 0, point 1.81 0.85 0, [ 1.73 1.00 0, 1.64 1.15 0, -0.52 -1.93 0, 1.53 1.29 0, -0.35 -1.97 0, 1.41 1.41 0, -0.17 -1.99 0, 1.29 1.53 0, 0.00 -2.00 0, 1.15 1.64 0, 0.17 -1.99 0, 1.00 1.73 0, 0.35 -1.97 0, 0.85 1.81 0, 0.52 -1.93 0, 0.68 1.88 0, 0.68

文档评论(0)

1亿VIP精品文档

相关文档