JavaScript经典例子--地球自转

这是一个JavaScript例子,显示的效果就是,地球在自转,代码如下:

 

<html>
  <head>
    <title></title>
  </head>
  <body bgcolor="#000000" text="#FFFFFF">
    <p id="idInsertObject"></p>  
  </body>
  <script languate="VBScript" type="text/VBScript">
    Dim pubOrbits_X(255, 255)
    Dim pubOrbits_Y(255, 255)
    Dim pubSpanObjects(255)
    Dim pubColors(255)
    Dim pubStepOn
    Dim pubWorkOn
    Dim pubX
    Dim pubY
    Dim pubScale
    Dim pubTime

    Sub window_onload()
      CreateObjects
      CreateColors
      CreateOrbits pubOrbits_X, pubOrbits_Y
      NewSkyrocket
      ShowSkyrocket
    End Sub

    Sub NewSkyrocket()
      pubX= 200
      pubY= 200
      pubScale = 2 'Rnd * 2 + 2
      pubTime = window.setTimeout("ShowSkyrocket", 1)
    End Sub
       
    Sub ShowSkyrocket()
      If pubWorkOn <= 255 Then
          pubWorkOn = (pubWorkOn + 1) mod 256
          ViewObjects pubScale, pubWorkOn, pubX, pubY
          pubTime = window.setTimeout("ShowSkyrocket", 1)
        Else
          pubWorkOn = 0
          ViewObjects pubScale, pubWorkOn, pubX, pubY
          NewSkyrocket
      End If
    End Sub
   
    Sub ViewObjects(pScale, pIndex, pX, pY)
      For tIndex = 0 To 255
        If pIndex < 256 Then
          With pubSpanObjects(tIndex).style
            .color = pubColors(tIndex)
            .top = pubOrbits_Y(tIndex, pIndex) * pScale + pY
            .left = pubOrbits_X(tIndex, pIndex) * pScale + pX
          End With
        End If
      Next
    End Sub

    Sub CreateObjects()
      For tIndex = 0 To 255
        Set pubSpanObjects(tIndex) = document.createElement("SPAN")
        With pubSpanObjects(tIndex)
          .innerText = "*"
        End With
        With pubSpanObjects(tIndex).style
          .position = "absolute"
          .color = Rgb(0, 0, 0)
        End With
        idInsertObject.insertAdjacentElement "beForeEnd", pubSpanObjects(tIndex)
      Next
    End Sub

    Sub CreateColors()
      Dim tColor(2)
      For tColorIndex = 0 To 255
        tColor(0) = Rnd : tColor(1) = Rnd : tColor(2) = Rnd       
        tColor(Int(Rnd*3)) = 1
        pubColors(tColorIndex) = rgb(tColor(0) * 255, tColor(1) * 255, tColor(2) * 255)
      Next
    End Sub

    Sub CreateOrbits(pOrbits_X(), pOrbits_Y())
      tAxis_YZ = 0
      tAxis_R = 100
      For tOrbitsIndex = 0 To 255
        tAxis_XY = Int(Rnd * 360)
        tAxis_ZX = Int(Rnd * 360)
        For tLightIndex = 0 To 255
          tTempZX = tAxis_ZX + (tLightIndex * 360) / 255
          GetOrbits tAxis_XY, tAxis_YZ, tTempZX, tAxis_R, tOrbits_X, tOrbits_Y
          pOrbits_X(tOrbitsIndex, tLightIndex) = tOrbits_X
          pOrbits_Y(tOrbitsIndex, tLightIndex) = tOrbits_Y
        Next
      Next
    End Sub
 
    Sub GetOrbits(pAxis_XY, pAxis_YZ, pAxis_ZX, pAxis_R, pOrbits_X, pOrbits_Y)
      tAxis_XY = RadianGetByAngle(pAxis_XY)
      tAxis_YZ = RadianGetByAngle(pAxis_YZ)
      tAxis_ZX = RadianGetByAngle(pAxis_ZX)
      pOrbits_X = pAxis_R * Cos(tAxis_XY) * Sin(tAxis_ZX)
      pOrbits_Y = pAxis_R * Sin(tAxis_XY) * Cos(tAxis_YZ)     
    End Sub
   
    Function RadianGetByAngle(pAngle)
      RadianGetByAngle =pAngle * 3.1415926 / 180
    End Function
  </script>
</html>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值