调用DirectX的组件实现的时钟

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

<html>
<head>
<title>指针式时钟</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>

<body bgcolor="#FFFFFF" text="#000000">
<div id="LayClock" style="position:absolute; width:101; height:101px; z-index:2; left: 203px; top: 101px">
<object id="DAControl" width=101 height=101 align=LEFT hspace=0
classid="CLSID:B6FFC24C-7E13-11D0-9B47-00C04FC2F51D">
</object>
<SCRIPT LANGUAGE="VBScript">
<!--
Set m = DAControl.PixelLibrary
pi = 3.14159265359
Sub window_onLoad
a = time
min1 = minute(time)
hr1 = hour(time)
sec1 = second(time)
Set xPos = m.Mul(m.DANumber(150), m.Cos(m.Mul(m.LocalTime,m.DANumber(0.3))))
Set yPos = m.Mul(m.DANumber(35), m.Cos(m.Mul(m.LocalTime,m.DANumber(0.5))))
Set clock = m.Overlay(hands(hr1,min1,sec1),hands(hr1,min1,sec1))
DAControl.Image = clock
DAControl.Start
End Sub
Function hands(hr,min,sec)
Set bvr60 = m.DANumber(60)
Set secFromMidnight = m.Add(m.DANumber(hr*3600+min*60+sec),m.LocalTime)
Set secBvr = m.Mod(secFromMidnight,bvr60)
Set minBvr = m.Mod(m.Div(secFromMidnight,bvr60),bvr60)
Set hrBvr = m.Mod(m.Div(secFromMidnight,m.DANumber(3600)),m.DANumber(12))
ptsSec = Array( -10, -2, 42, -1, 42, 1, -10,2 )
ptsMin = Array(-7, -2, 36, -1, 36, 1, -7, 2 )
ptsHr = Array(-5, -3, 32, -1, 32, 1, -5, 3 )
Set temp1 = m.Mul(m.DANumber(-pi/30),m.Sub(secBvr,m.DANumber(15)))
Set temp2 = m.Mul(m.DANumber(-pi/30),m.Sub(minBvr,m.DANumber(15)))
Set temp3 = m.Mul(m.DANumber(-pi/6),m.Sub(hrBvr,m.DANumber(3)))
Set imgSec = m.PolyLine(ptsSec).Fill(m.DefaultLineStyle,m.SolidColorImage(m.cyan))
Set imgSec = imgSec.TransForm(m.Rotate2Anim(temp1))
Set imgMin = m.PolyLine(ptsMin).Fill(m.DefaultLineStyle,m.SolidColorImage(m.yellow))
Set imgMin = imgMin.TransForm(m.Rotate2Anim(temp2))
Set imgHr = m.PolyLine(ptsHr).Fill(m.DefaultLineStyle,m.SolidColorImage(m.green))
Set imgHr = imgHr.TransForm(m.Rotate2Anim(temp3))
Set hands = m.Overlay(imgSec,m.Overlay(imgMin,imgHr))
End Function
-->
</SCRIPT></div>
</body>
</html>

时间: 2024-09-06 09:30:37

调用DirectX的组件实现的时钟的相关文章

jcom-利用Jcom在用java程序中调用windows Com组件,Jcom.dll是不是支持64位操作系统?

问题描述 利用Jcom在用java程序中调用windows Com组件,Jcom.dll是不是支持64位操作系统? 利用Jcom在用java程序中调用windows Com组件,Jcom.dll是不是支持64位操作系统?我发现在32位机器上是可以调用成功的,为什么切换到64为机器上就调用不成功,有谁了解这个Jcom的,谢谢给个解答.

C#调用福昕组件进行打印

问题描述 C#怎么调用福昕组件进行打印,有人做过么? 解决方案

C#调用进程外组件,为何不从类厂进入?

问题描述 我用C#写了一个进程外组件,并写了类厂将类的生成写成单件模式用c++调用都正常但是用c#调用的时候总是避开我的类场,直接从构造函数走了.这是为什么,如何解决呢? 解决方案 本帖最后由 joyancy21 于 2012-04-01 11:51:58 编辑解决方案二:把示例代码,拿出来看看:如果能直接走构造函数,说明你的单件模式写的有问题:是不是用的静态方法,构造函数私有了没有?

Java swt 调用com类组件的问题

问题描述 我用vcATL开发了一个类组件(扩展名dll,须注册),然后在java中调用如下:frame=newOleFrame(shell1,SWT.NONE);site=newOleControlSite(frame,SWT.NONE,"YYY.xxx.1");这句会出错auto=newOleAutomation(site);请问为什么会出错.谢谢. 解决方案 解决方案二:大家今天休息?解决方案三:这个调用com组件.我们常用 Jacob....你使用这个框架试试把...OleFra

送段代码给大家

下面的代码是调用的DirectX的组件实现的时钟.它有三根指针,会实时地随系统时间的改变而改变.不过我没有做刻度,因为我觉得用程序画出来的刻度不漂亮,用PHOTOSHOP画一口钟作为背景要漂亮多了.<html><head><title>指针式时钟</title><meta http-equiv="Content-Type" content="text/html; charset=gb2312"></h

COM组件设计与应用(十一)——IDispatch及双接口的调用

本文配套源码 一.前言 前段时间,由于工作比较忙,没有能及时地写作.其间收到了很多网友的来信询问和鼓励,在此一并表示感谢.咳......我也需要工作来养家糊口呀...... 上回书介绍了两种方法来写自动化(IDispatch)接口的组件程序,一是用 MFC 方式编写"纯粹"的 IDispatch 接口:二是用 ATL 方式编写"双接口"的组件. 二.IDispatch 接口和双接口 使用者要想调用普通的 COM 组件功能,必须要加载这个组件的类型库(Type lib

Windows服务程序时钟的调用方法

1 大概思路 设计服务程序 创建服务 安装必备组件 编写Service1 运行效果 2 设计服务程序 创建服务程序,通过添加System.Timers时钟进行定时向Wecome.txt写入文本. 3 创建服务 创建项目.安装项目 (通过工具箱添加System.Timers组件,系统时钟组件,不同于System.Windows.Forms)

在Windows Server 2008 X64中通过.NET程序调用32位com组件

在开发短信接口时,需要调用一个com组件,在本机测试成功.可是部署到Windows Server 2008 X64的服务器上却出现下面的错误: Retrieving the COM class factory for component with CLSID {79AD7B73-C515-40B4-8B02-CB0F5FA5A1A} failed due to the following error: 80070005 部署时,直接在命令行中通过regsvr32注册com组件. 被这个问题折腾了

c++ 中制作 atl com 复合组件,能在c++的dll中调用吗

问题描述 c++ 中制作 atl com 复合组件,能在c++的dll中调用吗 我写了一个atl com的复合组件,里面就一个浏览器的控件拖上去而已,想在一个dll中调用这个com组件,然后就会启动一个浏览器窗口,但是我dll连到这个com组件的方法中的时候,这个浏览器窗口就是不会自动显示,请问如何让这个com组件展示?并且我希望能够操作这个浏览器去访问某个地址,请问我该如何去操纵这个浏览器控件? 解决方案 这么做很不安全,要考虑你的com对象的线程模型,如果是公寓线程,是不能调用webbrow