当前位置:首页 > 代码 > 正文

圆形时钟代码库(时钟程序代码)

admin 发布:2022-12-19 18:46 118


今天给各位分享圆形时钟代码库的知识,其中也会对时钟程序代码进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

vb中怎样做出时钟?

VB可使用Timer控件、Line控件和绘图或加载图片等制作指针式时钟。

Timer 控件,通过引发 Timer 事件,Timer 控件可以有规律地隔一段时间执行一次代码。

Line 控件,Line 控件是图形控件,它显示水平线、垂直线或者对角线。

运行时不能使用 Move 方法移动 Line 控件,但是可以通过改变 X1、X2、Y1 和 Y2

属性来移动它或者调整它的大小。

Circle 方法,在对象上画圆、椭圆或弧。

以下是通过加载图片的指针式时钟代码:

Option Explicit

    Private Const PI = 3.1415926

    Dim X(1) As Single, Y(1) As Single

    Dim OriAngle As Single, DestAngle As Single, r As Single

Private Sub RotateLine(objL As Line, bsPointX As Single, bsPointY As Single, RotateAngle As Single)

    With objL

        X(0) = .X1

        Y(0) = .Y1

        X(1) = .X2

        Y(1) = .Y2

    End With

    Dim i As Integer

    For i = 0 To 1

        If X(i) - bsPointX  0 Then

            OriAngle = Atn((Y(i) - bsPointY) / (X(i) - bsPointX))

        Else

            OriAngle = IIf(Y(i)  bsPointY, PI / 2, 1.5 * PI)

        End If

            If X(i) - bsPointX  0 Then

                If OriAngle  0 Then

                    OriAngle = PI - Abs(OriAngle)

                Else

                    OriAngle = PI + Abs(OriAngle)

                End If

            End If

            DestAngle = OriAngle + RotateAngle

            r = Sqr((X(i) - bsPointX) ^ 2 + (Y(i) - bsPointY) ^ 2)

            X(i) = bsPointX + r * Cos(DestAngle)

            Y(i) = bsPointY + r * Sin(DestAngle)

    Next i

    With objL

        .X1 = X(0)

        .Y1 = Y(0)

        .X2 = X(1)

        .Y2 = Y(1)

    End With

End Sub

Private Sub Form_Load()

    Timer1.Interval = 1000

    Dim i As Long

    For i = 1 To Val(Mid(Time$, 7, 2))

        RotateLine Line3, Line3.X1, Line3.Y1, 1 * PI / 30

    Next

    For i = 1 To Val(Mid(Time$, 4, 2))

        RotateLine Line2, Line2.X1, Line2.Y1, 1 * PI / 30

    Next

    For i = 1 To Val(Mid(Time$, 1, 2)) * 5 '对时针

        RotateLine Line1, Line1.X1, Line1.Y1, 1 * PI / 30

    Next

    For i = 1 To Val(Mid(Time$, 4, 2)) '对时针

        RotateLine Line1, Line1.X1, Line1.Y1, 1 * PI / 360

    Next

End Sub

Private Sub Timer1_Timer()

    RotateLine Line3, Line3.X1, Line3.Y1, 1 * PI / 30

        RotateLine Line2, Line2.X1, Line2.Y1, PI / 1800

    If Mid(Time$, 7, 2) = "00" Or Mid(Time$, 7, 2) = "30" Then

        RotateLine Line1, Line1.X1, Line1.Y1, 1 * PI / 720

    End If

    Me.Caption = Time$

End Sub

用VB模拟时钟转动源代码,谢谢啊!急需~~

呵呵,本转一个VB吧主CBM666写的时钟代码.. '添加 Line1 Line2 Line3 Timer1 Dim xx1%, yy1% '宣告变量xx1,yy1为整型(给圆心用的) Private Sub Form_Load() Me.AutoRedraw = True '重画为真 '窗体置中 Me.Move (Screen.Width - Me.Width) \ 2, (Screen.Height - meiheight) \ 2 '计算圆心的x轴 xx1 xx1 = Me.Width \ 2 '计算圆心的y轴 yy1 yy1 = (Me.Height - 405) \ 2 '将下面3根针的起点x1,y1全定位在圆心上 Line1.X1 = xx1: Line1.Y1 = yy1 Line2.X1 = xx1: Line2.Y1 = yy1 Line3.X1 = xx1: Line3.Y1 = yy1 '画钟的外匡让线条粗一点 Me.DrawWidth = 5 '画一个圆 Me.Circle (xx1, yy1), 950 Line2.BorderWidth = 1 '秒针的粗度 Line2.BorderColor = QBColor(12) '秒针的颜色 Line1.BorderWidth = 2 '分针的粗度 Line1.BorderColor = QBColor(14) '分针的颜色 Line3.BorderWidth = 3 '时针的粗度 Line3.BorderColor = QBColor(10) '时针的颜色 Timer1.Interval = 500 End Sub Private Sub Timer1_Timer() Me.Caption = Time '标题栏显示现在时间 ' Second Hand '画秒针 '计算秒针的角度,每一秒是 360度除以60秒=6度, 所以要乘上6 sdeg = Second(Time) * 6 'vb是以弧度为单位来计算,所以角度换算弧度是 3.14/180, 秒针跑了N度就乘上N srad = (3.14 / 180) * sdeg '900是秒针的长度,以圆心(line2的x1,y1)为准,计算出在这个弧度时line2.x2在什么位置 Line2.X2 = Line2.X1 + (900 * Sin(srad)) '900是秒针的长度,以圆心(line2的x1,y1)为准,计算出在这个弧度时line2.y2在什么位置 Line2.Y2 = Line2.Y1 - (900 * Cos(srad)) ' Minute Hand '画分针 '计算分针的角度,每一分是360度除以60分=6度, 所以要乘上6,秒针动分针也会动,所以还要加上秒针移动所产生的分针移动. '秒针转了1圈360度,分针才会前进1分钟=6度,所以比例是 6/360等于 1/60 Mdeg = Minute(Time) * 6 + (sdeg * 1 / 60) 'vb是以弧度为单位来计算,所以角度换算弧度是 3.14/180, 分针跑了N度就乘上N mrad = (3.14 / 180) * Mdeg 'vb是以弧度为单位来计算,所以角度换算弧度是 3.14/180, 分针跑了N度就乘上N '750是分针的长度,以圆心(line1的x1,y1)为准,计算出在这个弧度时line1.x2在什么位置 Line1.X2 = (750 * Sin(mrad)) + Line1.X1 '750是分针的长度,以圆心(line1的x1,y1)为准,计算出在这个弧度时line1.y2在什么位置 Line1.Y2 = Line1.Y1 - (750 * Cos(mrad)) ' Hour Hand '画时针 '计算时针的角度,每一小时时针跑30度,分针动时针也会动,所以还要加上分针移动所产生的时针移动. '分针转了1圈360度,时针才会前进1刻划=30度,所以比例是 30/360等于 1/12 hdeg = Hour(Time) * 30 + (Mdeg / 12) 'vb是以弧度为单位来计算,所以角度换算弧度是 3.14/180, 时针跑了N度就乘上N hrad = (3.14 / 180) * hdeg '500是时针的长度,以圆心(line3的x1,y1)为准,计算出在这个弧度时line3.x2在什么位置 Line3.X2 = (500 * Sin(hrad)) + Line3.X1 '500是时针的长度,以圆心(line3的x1,y1)为准,计算出在这个弧度时line3.y2在什么位置 Line3.Y2 = Line3.Y1 - (500 * Cos(hrad)) End Sub参考资料:

c语言 时钟模拟

#includemath.h

#includedos.h

#includegraphics.h

#includeconio.h

#includetime.h

#define PI 3.141592653589793

int h,m,s,i,l,mon,y,d;

struct time t;

struct date data;

draw()

{

gettime(t); //取得时间信息到t

s=t.ti_sec; //秒

h=t.ti_hour; //时

m=t.ti_min; //分

getdate(data); //取得日期信息到data

y=data.da_year; //年

mon=data.da_mon; //月

d=data.da_day; //日

//画出钟的外圆(即是轮廓)

setcolor(11);

circle(300,200,152);

setcolor(3);

circle(300,200,157);

//画出60个分钟刻度

for(i=0;i60;i+=1)

{

if(i%5==0) l=140;

else l=145;

line(300+150*sin(i*PI/30),200-150*cos(i*PI/30),

300+l*sin(i*PI/30),200-l*cos(i*PI/30));

}

//画秒针

setcolor(19);

line(300,200,300+140*sin(s*PI/30),200-140*cos(s*PI/30));

//画分针

setcolor(3);

line(300,200,300+110*sin(m*PI/30),200-110*cos(m*PI/30));

//画时针

setcolor(11);

line(300,200,300+90*sin(((float)h+(float)m/60)*PI/6),200-90*cos(((float)h+(float)m/60)*PI/6));

//标注钟盘上的"3"、"6"、"9"、"12"

settextstyle(3,0,2);

outtextxy(430,190,"3");

outtextxy(295,320,"6");

outtextxy(160,190,"9");

outtextxy(293,60,"12");

}

main()

{

int gd=DETECT,gm;

initgraph(gd,gm,""); //初始化屏幕模式

setbkcolor(8);

while(!kbhit()) //若有键盘输入则跳出(结束程序)

{

draw(); //绘制钟

settextstyle(3,0,5);

setcolor(9);

outtextxy(60,170,"my clock");

gotoxy(35,17);

//打印出数字形式的时间(hh:mm:ss)

if(h10) printf("0");printf("%d:",h);

if(m10) printf("0");printf("%d:",m);

if(s10) printf("0");printf("%d",s);

gotoxy(33,18);

printf("%d:",y);

//打印出日期(mm:dd)

if(mon10) printf("0");printf("%d:",mon);

if(d10) printf("0");printf("%d",d);

sound(200); //让喇叭以200HZ叫一声

delay(70); //延时0.07秒,即是声音延续0.07秒

nosound(); //停止声音

sleep(1); //停止一秒

cleardevice(); //清屏

}

}

怎么让pictureBox.Paint += new PaintEventHandler(this.pictureBox_Paint);执行后使picturebox的背景还原

Graphics g = Graphics.FromImage(pictureBox1.Image);

这个地方改成

Graphics g = e.Graphics;//不用创建,参数里有

g.clear(Color.Black);//使用黑色背景

如果还有其他问题,可以参考我空间里的几个小游戏,里面有介绍

谁能提供一个24小时制的flash时钟源码

题外说句,老师几乎每届都能看到钟的代码,几乎一看见钟的flash就会减分的,就算你把钟调成转一圈25小时的,老师也不会打高分的。

下面是时针转24小时的代码,别忘画个24小时的圆形时钟刻度盘做背景。如果想改成一天转36小时的钟,就用360/36=10,然后把hourHand一句的15改成10就可以啦,当然别忘记画36小时钟的刻度盘……汗

24小时时钟的代码(时针是24进制的,分针,秒针都是60进制的)

_root.onEnterFrame = function() {

myDate = new Date();

hourHand._rotation = myDate.getHours()*15+(myDate.getMinutes()/2);

minuteHand._rotation = myDate.getMinutes()*6+(myDate.getSeconds()/10);

secondHand._rotation = myDate.getSeconds()*6;

};

需要注意的是除了画背景圆形钟的刻度盘,还要画时针,分针,秒针这三个影片剪辑元件,并且把针尾旋转点对准舞台中心否则会转偏。大小写不许错,把时针剪辑的实例名称写成hourHand,分针实例名称minuteHand,秒针实例名称secondHand

圆形时钟代码库的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于时钟程序代码、圆形时钟代码库的信息别忘了在本站进行查找喔。

版权说明:如非注明,本站文章均为 AH站长 原创,转载请注明出处和附带本文链接;

本文地址:http://ahzz.com.cn/post/18344.html


取消回复欢迎 发表评论:

分享到

温馨提示

下载成功了么?或者链接失效了?

联系我们反馈

立即下载