调用DirectX的组件实现的时钟

下面的代码是调用的DirectX的组件实现的时钟。它有三根指针,会实时地随系统时间的改变而改变。
不过我没有做刻度,因为我觉得用程序画出来的刻度不漂亮,用PHOTOSHOP画一口钟作为背景要漂亮多了。

 1<html>
 2<head>
 3<title>指针式时钟</title>
 4<meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
 5</head>
 6<body bgcolor="#FFFFFF" text="#000000">
 7<div id="LayClock" style="position:absolute; width:101; height:101px; z-index:2; left: 203px; top: 101px">
 8<object align="LEFT" classid="CLSID:B6FFC24C-7E13-11D0-9B47-00C04FC2F51D" height="101" hspace="0" id="DAControl" width="101">
 9</object>
10<script language="VBScript">   
11<!--   
12Set m = DAControl.PixelLibrary   
13pi = 3.14159265359   
14Sub window_onLoad   
15a = time   
16min1 = minute(time)   
17hr1 = hour(time)   
18sec1 = second(time)   
19Set xPos = m.Mul(m.DANumber(150), m.Cos(m.Mul(m.LocalTime,m.DANumber(0.3))))   
20Set yPos = m.Mul(m.DANumber(35), m.Cos(m.Mul(m.LocalTime,m.DANumber(0.5))))   
21Set clock = m.Overlay(hands(hr1,min1,sec1),hands(hr1,min1,sec1))   
22DAControl.Image = clock   
23DAControl.Start   
24End Sub   
25Function hands(hr,min,sec)   
26Set bvr60 = m.DANumber(60)   
27Set secFromMidnight = m.Add(m.DANumber(hr*3600+min*60+sec),m.LocalTime)   
28Set secBvr = m.Mod(secFromMidnight,bvr60)   
29Set minBvr = m.Mod(m.Div(secFromMidnight,bvr60),bvr60)   
30Set hrBvr = m.Mod(m.Div(secFromMidnight,m.DANumber(3600)),m.DANumber(12))   
31ptsSec = Array( -10, -2, 42, -1, 42, 1, -10,2 )   
32ptsMin = Array(-7, -2, 36, -1, 36, 1, -7, 2 )   
33ptsHr = Array(-5, -3, 32, -1, 32, 1, -5, 3 )   
34Set temp1 = m.Mul(m.DANumber(-pi/30),m.Sub(secBvr,m.DANumber(15)))   
35Set temp2 = m.Mul(m.DANumber(-pi/30),m.Sub(minBvr,m.DANumber(15)))   
36Set temp3 = m.Mul(m.DANumber(-pi/6),m.Sub(hrBvr,m.DANumber(3)))   
37Set imgSec = m.PolyLine(ptsSec).Fill(m.DefaultLineStyle,m.SolidColorImage(m.cyan))   
38Set imgSec = imgSec.TransForm(m.Rotate2Anim(temp1))   
39Set imgMin = m.PolyLine(ptsMin).Fill(m.DefaultLineStyle,m.SolidColorImage(m.yellow))   
40Set imgMin = imgMin.TransForm(m.Rotate2Anim(temp2))   
41Set imgHr = m.PolyLine(ptsHr).Fill(m.DefaultLineStyle,m.SolidColorImage(m.green))   
42Set imgHr = imgHr.TransForm(m.Rotate2Anim(temp3))   
43Set hands = m.Overlay(imgSec,m.Overlay(imgMin,imgHr))   
44End Function   
45\-->   
46</script></div>
47</body>
48</html>
Published At
Categories with Web编程
Tagged with
comments powered by Disqus