模拟画一个时钟的问题
时间:2011-12-15
来源:互联网
procedure TForm1.Timer1Timer(Sender: TObject);
var
MyNow : TDateTime;
Hour, Min, Sec, mSec : Word;
vh, vm, vs : Real;
begin
Self.Refresh;
MyNow := Now;
DecodeTime(MyNow,Hour,Min,Sec,mSec);
vh := Hour/12.0*2*Pi; //小时数
vm := Min/60.0*2*Pi; //分钟数
vs := Sec/60.0*2*Pi; //秒
with Canvas do
begin
Pen.Width:=4; //画时针
Pen.Color := clBlue;
MoveTo(100,100);
LineTo(100+Round(25*Sin(vh)),100-Round(25*Cos(vh)));
Pen.Width:=2; //画分针
Pen.Color := clBlack;
MoveTo(100,100);
LineTo(100+Round(45*Sin(vm)),100-Round(45*Cos(vm)));
Pen.Width:=1; //画秒针
Pen.Color := clRed;
MoveTo(100,100);
lineto(100+round(60*sin(vs)),100-round(60*cos(vs)));
end;
end;
// lineto(100+round(60*sin(vs)),100-round(60*cos(vs)));这句的意思是什么,不太明白
另外怎么画一圆
var
MyNow : TDateTime;
Hour, Min, Sec, mSec : Word;
vh, vm, vs : Real;
begin
Self.Refresh;
MyNow := Now;
DecodeTime(MyNow,Hour,Min,Sec,mSec);
vh := Hour/12.0*2*Pi; //小时数
vm := Min/60.0*2*Pi; //分钟数
vs := Sec/60.0*2*Pi; //秒
with Canvas do
begin
Pen.Width:=4; //画时针
Pen.Color := clBlue;
MoveTo(100,100);
LineTo(100+Round(25*Sin(vh)),100-Round(25*Cos(vh)));
Pen.Width:=2; //画分针
Pen.Color := clBlack;
MoveTo(100,100);
LineTo(100+Round(45*Sin(vm)),100-Round(45*Cos(vm)));
Pen.Width:=1; //画秒针
Pen.Color := clRed;
MoveTo(100,100);
lineto(100+round(60*sin(vs)),100-round(60*cos(vs)));
end;
end;
// lineto(100+round(60*sin(vs)),100-round(60*cos(vs)));这句的意思是什么,不太明白
另外怎么画一圆
作者: chenfujun123 发布时间: 2011-12-15
红色是画线
画圆 canvas.ellipse()
画圆 canvas.ellipse()
作者: funxu 发布时间: 2011-12-16
和上面的一样,都是计算坐标,然后画线到这个坐标
vs := Sec/60.0*2*Pi;
100+60*sin(vs)这些计算公式慢慢研究吧,初中的三角知识运用在程序里面
vs := Sec/60.0*2*Pi;
100+60*sin(vs)这些计算公式慢慢研究吧,初中的三角知识运用在程序里面
作者: kaikai_kk 发布时间: 2011-12-16
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28