VB制作时钟

我想用VB来制作一个时钟,和win7那种一样,就是:那种可以自动旋转指针的!不是用标签+时钟控件做成的那种……不需要左边的日历,有的话是最好。我其实就是想明白怎么来知道圆... 我想用VB来制作一个时钟,和win7那种一样,就是:

那种可以自动旋转指针的!不是用标签+时钟控件做成的那种……
不需要左边的日历,有的话是最好。
我其实就是想明白怎么来知道圆上的的六十个小点的坐标,做的时候不是需要一个直线吗,那需要两个点坐标,把它的坐标(终点)的改变写在timer事件中,怎么确定终点每次改变?
展开
 我来答
syx54
2014-04-20 · TA获得超过7379个赞
知道大有可为答主
回答量:6567
采纳率:83%
帮助的人:2784万
展开全部
稍微需要一点数学知识,使用Line1控件或者 Line方法:

Line1控件有4个属性:x1,x2,y1,y2,决定了它的两个端点在窗体上的坐标,也就确定了它在窗体上的位置。
使用Timer控件,1秒钟间隔一次,触发它的Timer事件,在Timer事件编写代码,计算每秒种应该转过6度角度,计算方法:一个端点的坐标不变,另一个端点的坐标,根据三角公式,使用VB提供的正弦,余弦等函数,进行计算,并根据结果,设置Line1控件的属性。
这样,就可以得到你需要的效果了。
追问
我也知道啊,可是按你说的不会算。
在每个时间点,他向下一个时间点的变化,变化是不相同的,不是吗?
他转过的角度是一定的,但是你怎么由一个点确定这一个点呢?你说的我都理解,但是具体怎么来执行?我也知道可能用三角函数,但是你怎么用它来确定具体坐标呢?
请详细说明,谢谢
追答
在你的窗体上添加一个Line1控件,和一个Timer1控件,代码如下,就这么简单:

Option Explicit
Dim Jd As Integer

Private Sub Form_Load()
Timer1.Interval = 1000
Line1.X1 = 3000
Line1.X2 = 3000
Line1.Y1 = 2000
Line1.Y2 = 1000
Jd = -90
End Sub

Private Sub Timer1_Timer()
Jd = (Jd + 6) Mod 360
Line1.X2 = Line1.X1 + Cos(Jd / 180 * 3.1415926) * 1000
Line1.Y2 = Line1.Y1 + Sin(Jd / 180 * 3.1415926) * 1000
End Sub

你体验一下吧!
DFRobot
2024-11-10 广告
图形化编程是一种直观的编程方式,它通过拖拽图形化的编程积木来构建程序,降低了编程的学习门槛。在上海智位机器人股份有限公司,我们致力于将图形化编程应用于机器人教育等领域,使学习者能够以更加轻松、有趣的方式掌握编程技能。我们的图形化编程平台界面... 点击进入详情页
本回答由DFRobot提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式