您的位置:首页 > Web前端 > JavaScript

JavaScript经典例子--地球自转

2009-12-05 15:54 260 查看
这是一个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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: